Skip to main content

Full text of "Furby 1998 source code"

See other formats


TITLE PAGE 


INTERACTIVE TOY 
(FURBY.ASM - Version 25) 


INVENTOR: Dave Hampton 


Attorney Docket No. 64799 
FITCH, EVEN, TABIN & FLANNERY 
Suite 900 


135 South LaSalle Street 
Chicago, Illinois 60603-4277 
Telephone (312) 372-7842 



mu 

; • 

;• SPC81A Source Code {Version 251 

. • 

;• Written by: Dave Hampton / W' e Schulz 

;• Date: July 30, 1998 


;• Copyright (C) 1996,1997,1998 by Sounds Amazing! 

;• All rights reserved. 

]tmtmmmmmmmmmmmmmmtmtmmmmtmm 
mt* 

* 

S 


■ remember SBC i£ there is a borrow carry is CLEARED 

; also SBC if the two numbers are equal you still get a negative 

result 


lemmmmmmmmmmmmmmmtmmmmmmmm 

mu 

;* MODIFICATION LIST : 


Furby29/30/31 32 

Final testing for shipment of code on 8/2/98. 

Tables updated tor speed updated, wake up/name fix 
sequential tab. j never getting first entry.fixed. 

New diagS.asm, Light3.asm (if light osc stalls it wont hang 
lystem) . 

Fur by 3 3 

In motor brake routine, turn motors off before turning reverse 
braking pulse on to save transistors. 

Furby34 

Cleanup start code and wake routines 

Light sensor goes max dark and stays there to reff time, then 
call sleep macro and shut down. 

: Furby3 5 

Adds four new easter eggs.BURP ATTACK. SAY NAME. TWINkLE SONG, 
and ROOSTER LOVES YOU. Also add new names. 


::::::::: 





; Release 3 
i; File *testR3a" 

; 1. Light sensor has a hysteresis point of continually triggering 
sensor. 

; 2. Light sensor decrements two instead of one on nungry counter. 

; 3. Diagnos de for light sensor wont trigger very easily. 

; 4. When a tuioy eceives the I.R. sleep conmand he sends the same 
command 

j out before goi; to sleep. 

! 5. When hungry is >w enough to trigger sick counter, each sensor 

• deducts two instead of one for each hit. 

6. When diagnostics complete c’ear memory, reset hungry & sick to FF 

• randomly choose new name ar. voice, then write EEPROM before 

; going to sleep. Also extend EEPROM diagnostic to test all locations 

; for pass/fail of device. 

; 1. Add new light routine 

; 8. Change hide and seek egg to light,light,light,tummy. 

. 9. Change sick/hungry counter so that it can only get so sick and 
; not continue down to zero. (MAX_SICK) 

;10. In diagnostics, motcr position test first goes forward 

continuously . 

. until the front switch is pressed, then goes reverse continuously 

; until the front switch is pressed again, and then does normal 

position 

I calibration stopping at the calibration switch. 

; 11 . On power up we still use tilt and invert to generate startup random 
j numbers, but if feed switch is pressed for cold boot, we use it to 
generate random numbers, because it is controlled by the user where 
; the tilt and invert are more floky. 

;12. No matter what a'-e. 25% of time he randomly pulls speech from age 
; to generate more Furbish at older ages. 

;13. Twinkle song egg 

, When song is complete, if both front and back switches are pressed 

; we goto deep sleep. That means only the invert can wake us up, not 

1 the tilt switch. 


1111 * .. 

j *******.*.... 

. . *"”**””******' ... 

;**... . . 

. ... .. 


A-2 








; Actual numeric value for TX pitch control 

; bit 7 set * subtract value from current course value 
1 clr » add value to cur -ent course value 

; bit 6 set ■ select music pitch table 
( clr «= select normal speech pitch table 

I bit 0-5 value to change course value (no change * 0) 

; A math routine in 'say_0’ converts the value for ♦ or - 
; if <80 then subtracts from 80 to get the minus version of 00 
; ie, if number is 70 then TI gets sent 10 (which is -10) 

; If number is 80 or > 80 then get sent literal as positive. 

; NOTE: MAX POSITIVE IS 8F (*16 from normal voice of 00) 

; MAX NEGATIVE is 2F (-47 from normal voice of 00) 

;This is a difference of 80h - 2Fh or 51h 


; 8Fh is hi voice (8f is very squeeeeeke) 
; 2Fh lo voice ( very low) 


; The math routine in •Say_0• allows a '-decimal number in the speech 
table. 

; A value of 80 = no change or 00 sent to TI 
; 81 = +1 
l 8f « *16 

;?value of 7F = -1 from norm^. voice 
;70 = -16 

; The voice selection should take into consideration that the hi voice 
; selection plus an aditional offset is never greater than 8f 
; Or a low voice minus offset never less than 2f. 


Voi i - ' 1 

EQU 

83h 

; (■»3) hi voice 

Vc ce2 

EQU 

7 Ah 

;(-6) mid voice 

Voice3 

EQU 

71h 

; (-15) low voice 


Sill we converted to a random selection table, but since all voice 

j use the equate- plus some offset, we » th« change in the SAY 0 

; routine. We always assign voice 3 whicn is the lowest, and based on 

j the random power up pitch selection, the ram location ’Rvoice' 

holds . . 

j the number to add to the voice*offset received from the macro 

cable. 


Voice EQU Voice3 ,-pitch (choose Voicel, Voice2. 

Voice3)(voice2*norml 

' ; Select Voice3 since it is the lowest and then add the difference to 

* Voice2 or Voice3. Here we assign that difference to an equate to be 
; used in the voice table that is randomly selected on power up. 


S voicel EQU 18 ;Voice3 ♦ 18d = Voicel 
S~voice2 EQU 09 ;Voice3 ♦ 09d * Voice2 



S_voic#3 EQU 0 ;Voics3 ♦ OOd « Voice3 



; Motor speed pulse width : 

j Motor_on ■ power to motor, Motor_off is none. 


Mpulse_on EQU 16 ; 
Mpulse_o££ EQU 16 ; 


Cal_pos_£wd EQU 134 jcalibration switch forward direction 
Cal_pos_rev EQU 134 ;calibration switch forward direction 


. .• 

.. 

,............... 

jOAXAAAAAXAAXAAAXAAAAAAAAAAAAAAAAAAAAAXAAXAXAAAAXAAAAXXi 

; ' PORTS * 

;> SPC40A has : 16 I/O pins 
;» PORT_A 4 I/O pins 03 

PORT_C 4 I/O pins 0-3 1 

;> PORT_D 8 I/O pins 0-7 * 

; > ' 

'• > RAM ’ 

! ' ’ 

,1 SPC40A has : 128 bytes of RAM 
s' from S80 - $FF 

. > * 

» ROM 

■ * SPC40A has : 

;* BANKO user ROM from $0600 - $7FFF 
;> BA’IKl user ROM from $8000 - SFFF9 

\ » » 

» VECTORS * 

;» NMI vector S7FFA / $7FFB 
1 • RESET vector $7FFC / $7FFD 
;» IRQ vector $7FFE / $7FFF 

; AAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU 
; aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA c 

,> PORTS 1 

;' SPC120A has s 17 I/O pins 

;' PORT_A 4 I/O pins 0-3 

.» PORT.B 4 I/O pins 0,1,2.4,5 

,' PORT_C 41/0 pins 0-3 input only 

S> PORT_D 8 I/O pins 0-7 

i * ! 

. » RAM 

;• SPC120A has : 128 bytes of RAM 
; » from $80 - $FF 
t ’ 

, > ROM 

;» SPC120A has : 


A-4 









j> BANKO user RO $0600 - $7FFA- 

}» BAIIK1 user RC $8000 - SFFFF * 

;» BANK2 user RC $10000 - $17FFF * 

;> BANK3 user RC S1A000 - S1FFFF ’ 

: 

I • VECTORS * 

NMI vector $7FFA / $7FFB * 

I> RESET vector $7FFC / $7FFD 
i» IRQ vector $7FFE / $7FFF 

; AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU 

A 


; unuseable areas in rom 

(SPC40A: 8000H AX DFFFH should be skiped (Dumny area) 

; bank 0 = 600 - 7FFA 

; bank 1 ■ 8000 - DFFF reserved , start 0 E000 - FFFA 

;SPC80A: 10000H AA 13FFFH should be skiped (Dummy area) 

; bank 0 = 600 - 7FFA 
i bank 1 ■ 8000 - FFFA 

; bank 2 = 10000-13FFF reserved , start at 14000 - 17FFF 

;SPC120A: ;SPC120A: 18000H AA 19FFFH should be skiped (Dummy area) 
I bank 0 = 600 - 7FFA 
; bank 1 = 8000 - FFFA 
; bank 2 = 10000 - 17FFF 

; bank 3 = 18000 - 19FFF reserved , start at 1A000 - 1FFFA 
;SPC256A: ;SPC256A: Non dummy area 
;SPC512A: ;SPC512A: Non dumny area 

... 

.CODE 

.SYNTAX 6502 

.LINKLIST 

.SYMBOLS 


; AAAAAAAAAAAAAAAAAAA PORT DIRECTION CONTROL REGISTER 

AAAAAAAAAAAAAAAAA; AAAAAA 

Ports_dir EQU 00 ; (write only) 

; (4 I/O pins) controlled with each bit of this register 
; you can't control each pin separately, only as a nibble 
; 0 « input / 1 « output 


; 7 6 5 4 3 2 1 0 (REGISTER 

* Z l S) D C C B B A A (PORT) 

• 7654 3210 7654 3210 7654 3210 7654 3210 (PORT BITS) 

jXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAJXAAAAAAAAAAAAAAAAAAAAAAAAA 

AAAAA 


• AAAAAAAAAAAAAAAAAA PORT CONFIGURATION CONTROL REGISTER 

AAAAA.’ XAAAAAAAAAAA 


A-5 




baaed on if the port pin ia input or output 


I 

Ports_con EQU 01 ; (write only! 


) (4 I/O 

pina) 

controlled with each 

bit of 

this 

register 


j 7 

BITS) 

6 

5 

4 3 

2 

1 

0 

(REGISTER 

; D 

D 

C 

C B 

B 

A 

A 

(PORT) 

; 7654 

3210 

7654 

3210 7654 

3210 

7654 

3210 

(PORT BITS) 

; port_a 

INPUTS 

can be 

either: 






; 0 = float 1 ” pulled high 
; port_a OUTPUTS can be either: 

; 0 * buffer 1 * upper (4) bits Open drain Pmos (source) 

; lower (4) bits Open drain Nmos (sink) 

I 

; port_b INPUTS can be either: 

; 0 * float 1 = pulled low 

; port_b OUTPUTS can be either: 

; 0 = buffer 1 = upper (4) bits Open drain Nmos (sink) 

; lower (4) bits Open drain Nmos (sink) 

i 

; port_c INPUTS can be either: 

; 0 * float 1 = pulled high 
; port_c OUTPUTS can be either: 

; 0 = butfer 1 = upper (4) bits Open drain Pmos (source) 

; lower (4) bits Open drain Nmos (sink) 

; port_d INPUTS can be eitfsr: 

; 0 = float 1 = pulled !ow 
; port_d OUTPUTS can be either: 

; 0 = buffer 1 * Open urain Pmos (source) 

; AAAAAAAAAAAAAAAAAAAAAA>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAA 


:AAAAAAAAAAAAAAAAAAAAAAAAAAA I/O PORTS 
AAAAAAAAAAAXAAAAAAAXAAAAAAXXXaAAXXAXA 


Port_A 

CPU's 

EQU 

02H 

1 (read/write) for TI & speech 

recgn 

Data_D0 

EQU 

01H 

;bit 0 data nible port 


Data_Dl 

EQU 

02H 

; 


Data_D2 

EQU 

04H 

; 


Data_D3 

EQU 

OBH 

i 


Port_B 

EQU 

03H 

;b0/bl * I/O b4/b5 « inp only 


TT.init 

EQU 

1!! 

;B0 - TI reset control 


TI_CTS 

EQU 

02H 

;B1 - hand shake to TI 


IR_IN 

EQU 10H 

. B4 

- I.R. Rec” data 


TI_RTS 

EQU 

20H 

;B5 - TI wants data 


Pc t_C 

EQU 

04H 

1 'read/w-ite) 


Motor_cal 

EQU 01H 

; CO 

- lo when mo; crosses switch 


Pos_sen 

EQU 

02H 

;Cl - motoi ical sensor (intt 

Cl) 

Touch_bck 

EQU 04H 

;C2 

- back touch 


Toucii_frnt 

EQU 08H 

;C3 

- front touch 




Port_E 


EQU 

05H 

Ball_side 

EQU 

01H 

; DO - 

Ball_invert 

EQU 

02H 

;D1 - 

Light_in 

EQU 

04H 

;D2 - 

Mic_in 


EQU 

08K 

Power_on 

EQU 

10H 

;D4 - 

Motor_led 

EQU 

20H 

;D5 - 

Motor_lt 

EQU 

40H 

;D6 - 

Motor_rt 

EQU 

80H 

;D7 - 


j (read/write) 
hi when on any aide (TILT) 
hi when inverted 
hi when bright light hits sensor 
;D3 - hi pulse microphone input 
power to rest of circuit 
motor I.R. led driver 
motor drive left (forward) 
motor drive right (reverse) 


,• AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'' AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAA 

;AAAAAAAAAAAAAAAAAAAAAAAA DATA LATCH PORT_D 

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

Latch_D EQU 06H ; (read) 

I read to latch data from port_d, used for wake-up on pin change 

jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 

AAAAA 

;AAAAAAAAAAAAAAAAAAAAAAAA* BANK SELECTION REGISTER 
AAAAAAAAAAAAAAAAAAAAAAAAAA 

Bank EQU 07H ; (read/write) xxxxxxxb 

; 0 = bank 0, 1 = bank 1 ; 76543210 

; only two banks in SPC40a 

;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA 
AAAAA 

;AAAAAAAAAAAAAAAAAAAAAAAAAAAAA WAKE UP 
AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA- 

Wake_up EQU 08H ; (read/write) xxxxxxxw 

. 7 6 5 4 3 2 1-.0 

• w=(0—disable, l=enable wake-up on port_d change) 

; read to see if wake-up, or normal reset 
; this is the only source for a wake-up 
; Always reset stack on wake up. 

jAAAAAAAAAAAAAA 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAA 

;AAAAAAAAAAAA/ AAAAAAAAAAAAAA SLEEP 
AAAAAAAAAAAAAAA AAAAAAAAAA aaAAAAAAAA 

Sleep t w 09H i (write) xxxxxxxs 

, , 7 6 5 4 3 2 1 0 

I s“(0»don‘t care, l=s. - 
j writting 1 ti bitO, 1 js sleep 

; AAAAAAAAAAAAAA* 'AAA AA, AAAAAAAAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAAA 

AAAAA 

,AAAAAAAAAAAAAAAAAAAAAAAA TIMER A CONTROL REGISTER 
AAAAAAAAAAAAAAAAAAAAAAAAAA 
; this needs more work to understand DMH 
TMA_CQN EQU OBH ; (write) 

I 

7 6 5 4 3 2 1 0 
1 m x x x 

I 

; m= Timer one mode (0=Timer.l=Counter) 



; 


Bic3: XE1 Ai IE1= 0: Counter clock* external clock from IOC2 
Bit2: T1 A" * 1, Tl= 0: counter clock* CPUCLK/8192 

* Bitl: IEO A' Tl= 1: counter clock* CPUCLK/6553i, 

• BitO: TO AO IEO* 0: Counter clock* external clock from IOC2 

I = 1, TO* 0: counter clock* CPUCLK/4 

; TO* 1: counter clock* CPUCLK/64 

I 

; AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAA 


;AAAAAAAAAAAAAAAAAAAAAAAAAAAA INTERRUPTS 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
Interrupts EQU ODH ; (read/write) 


I 

I 76543210 

I wmab321e 


; 

i 

: 


on) 

on) 

on) 


w * (0=watch dog ON, power-on default) (l=watch dog OFF) 
m = (0=Timer A generates NMI INT, l=Timer A generates IRQ INT) 
a = (0=Timer A interrupt off, l*Timer A interrupt on) 
b = (0=Timer B interrupt off, l=Timer B interrupt on) 

3 = (0=CFU CLK/1024 interrupt off, 1*CPU CUC/1024 interrupt 

2 * I0*CPU CLK/8192 interrupt off, 1=CPU CLK/8192 interrupt 

1 * <0*CPU CLK/65536 interrupt off, 1*CPU CLK/65536' interrupt 


; e * (0=external interrupt off, l*external interrupt on) 

; rising edge, from port_c bitl 

;AAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 


AAAAA 


; AAAAAAAAAAAAAAAAAAAAAXAAAAAAA TIMERS 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
; There are two 12bits timers. 

; Timer A can be either a timer or a counter, (as set by TIKEK_CON) 

I Timpr B can only be used as a timer. 

( *' 

i Tillers count-up and on overflow from 0FFF to 0000, this carry bit will 
create an interrupt if the corresponding bit is set in INTERRUPTS 
register. 

; The timer will ->e auto reloaded with the user setup value, and 
start,., 

! count-up again. 

; Counter will reset by user loading *00 into register TMA_LSB and 
TOA_MSB. 

; Counter registers can be read on-i »-fly, this will r.j: affect 
register,,, 

: values, or ieset them. 

JaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA. iAAAAAAAAAA 
AAAAA 


;AAAAAAAAAAAAAAAAAAAAAAAA TIMLR A (low byte 

iAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/AA 

TMA_LSB EQU 10H (read/write) 


; all 8bits valid (lower Sbits of 12kit timer) 



jAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

AAAAA 

;AAAAAAAAAAAAAAAAAAAAAAAAA TIMER A (high byte) 
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 


TMA_MSB 

EQU 


11H 


(read/write) 

; read 

X 

X 

X 

X 

ii 

10 

9 

8 

timer upper 4bits 

; 

7 

6 

5 

4 

3 

2 

1 

0 


rite 

x 

X 

t 

c 

11 

10 

9 

8 

timer upper 4bits 


7 

6 

5 

4 

3 

2 

1 

0 

register bit 


; t=(0 speech mode. l«Tone mode) 

; this connects the AUDA pin to either 

; the DAC . or Timer generated square wave 

! 

I c»(0*CPU clock. 1=CPU clock/4; 

;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

AAAAA 

jAAAAAAAAAAAAAAAAAAAAAAAA TIMER B (low byte 
) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
TMB_LSB EQU 12H 

1 

; all 8bits valid (lower 8fcits of 12bit timer) 

; AAAAAAAAAAAAAAAAAA.' AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
AAAAA 


;AAAAAAAAAAAAAAAAAAAAAAA.' TIMER B (high byte) 
AAAAAAAAAAAAAAAAAAAAAA; -_.AAAA 
TM8_MSB EQU 13H 

; read x x x x 11 10 9 8 timer upper 4bits 

; 76543210 


I 

; write 

J 

l 

} 


x x t c 11 10 9 8 timer upper 4bits 

76543210 register bit 

t=(0*speech mode, l=Tone mode) 

this connects the AUDB pin to either 

the DAC2, or Timer generated square wave 


I c=(0=CPU clock. 1=CPU clock/4. 

.•AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,' 'AAA 
AAAAA 


;AAAAAAAAAAAAAAAAAAAAAAAAAA D/A converters 

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

DAC1 EQU 14H i (write) 

DAC2 EQU 15H ; (write) 

.-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

AAAAA 


.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

AAAAA 

i this needs more work to understand DMH 
; 16H ADCoutputPortl6H: 

DAC_ctrl EQU 16H 


A-9 


i 




; 

-• 


Bit7: I/O 0: Disable ADC; 1: Enable ADC 
Bit6: I/O 
Bit5: I/O 
; Bit4; I/O 

J Bit3: I/O 

} Bit2: I/O 

» Bitl: I/O 

; BitO: I/O 

;AAAAXAAAAAAAAAAAAAAAAAAAAAAAAA>\AAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 

;OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAXAW SAA MJAi 
; » Operating equate definition 

; AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAu 

;EQdef 

; to calculate samp/ 

I CPU clk/sample rat.. or 


; Hi & Lo timer 

reg con 

» FFF 

; FFF - divisor 

= valu> 

oa ’ hi t lo reg. 

;ex: 6mHZ elk = 

166nSEC 



Tracker 


;/* here is son. 

definition chnge of time interrupt constant ’/Tracker 

;SystemClock: 
same 

EQU 

6000000 ;Select 6000000Hz it will be the 

;as before 

SystemClock: 
use that 

EQU 

3575545 ,-Select 3579545Hz while we ate 

;crystal 

TimeA_low: 

definition 

EQU 

<(4096-(SystemClock/5859)) ;put constant 

TimeA_hi: 

EQU 

>(4096-(SystemClock/5859)) 

TimeB_low: 

EQU 

<(4096-(SystemClock/1465)) 

TimeB hi: 

EQU 

>(4096-(SystemClock/1465)) 



Port_def EQU 

A7h 

;D hi=out.D lo«ii., / C hi=out,C lo=inp 
;B hi=inp,B logout / A hi=out,A lo=out 

Con_def 

EQU 

50H ;D hi=out buffer, D lo=in pull lo 

• 

t 


;C hi=out buffer. C lo=in p ;1 hi 

$ 

• 


;B hi=in hi-Z , B lo-out buffer 

1 

f 


;A hi=out buffer. A logout buffer 

Intt_d£lt EQU 

DOh 

.-sets interrupt reg = no :atchdog, irq 
; timer B , and EXt port C bit 1 = off 


;*•**• run EQU's 
; .***** 


A-10 









; Send a braking pulse to stop motor drift, and this EQU is a decimal 
number 

• that determines how many times through the 2.9 mSec loop (how many 
loops) 

; the brake pulse is on. If attempting to make single count jumps, the 
; brake pulse needs to be between 26 and 30. For any jump greater than 
10 

( braking between 22 and 80 is acceptable. ( Long jumps are rot critical 
l but short jump will begin to oscillate if braking is too great.) 


; 60 long fc 20 short work at 3.6v and no pulse width 

Dnft_long EQU 60 .-number times thru intt before clearing pulse 
Drift_sho-t EQU 25 j 


i set this with a number from 0 - 255 to determine timeout of all 

sensors 

; for the sequential increments. If it times out the table pointer 
; goes back to the start, else each trigger increments through the 
table. 


; NOTE: this time includes the mctor/speech execution time !!! 
Global_time EQU 16 ; 1= 742 mSEC ;; 255 =1' .3 seconds 


; This determines how long Firby waits with no sensor activity, then 
; calls the Bored_table for a random speech selection. 

; Ue a number between 1 U 255. Should probably not be less than 10. 

; SHOULD BE > 10 SEC TO ALLOW TIME FOR TRAINING OF SENSORS 

Bored_ eld EQU 40 ; 1= 742 mSEC 255 = 189.3 seconds 

.......... ......... 

1 Each sensor has a sequential random sp. . which must equal 16. 

; Each sensor has a different assignment. 

; The tables are formatted with the first X assignment;, random 
l and the remaining as sequential. 


Soq_front 

EQU 

8 

Ran_front 

EQU 

8 

Seq_back 

EQU 

9 

Ran_back 

EQU 

7 

Soq_tilt 

EQU 

10 

Rar_r.ilt 

EQU 

6 

Seq_invert 

EQU 

8 

Ran_invert 

EQU 

8 

Seq_sound 

EQU 

0 

Ran_sound 

EQU 

16 


All 







Seq_light 

EQU 

0 

Ran_light 

EQU 

16 

Seq_feed 

EQU 

8 

Ran_feed 

EQU 

8 

Seq_wake 

EQU 

0 

Ran_wake 

EQU 

16 

Seq_bored 

EQU 

7 

Ran_bored 

EQU 

9 

Seq_hungcr 

EQU 

5 

Ran_hunger 

EQU 

11 

Seq_sick 

EQU 

4 

Ran_sick 

EQU 

12 

; rev furbllja 



; Each sensor also determines how often it is random or sequential 
; as in 50/50 or 60/40 etc. 

; These entries are subtracted from the random nur.ber generated 
; and determine the split, (the larger here, the mere likely sequential 
pick I 


Tilt_split 

EQU 

8 Oh 

Invert_split 

EQU 80h 

Front_split 

EQU 

8 Oh 

Back_split 

EQU 

80h 

Feed_split 

EQU 

8 Oh 

Sound_split 

EQU 

80h 

Light_split 

EQU 

80h 

Bored_split 

EQU 

80h 

Hunger_split 

EQU 80h 

Sick_split 

EQU 

80h 


(*. . . 

Random_age EQU 30h ;at any age, below this number when a 


; 


random number is picked will cause him 
to pull from the age 1 table. More Furbish. 


Leam_chg 

EQU 

31 

!----------- 

Food 

EQU 

20h 

Noed_food 

EQU 

80h 

Sick_reff 

EQU 

60h 

Really_sick 

EQU 

COh 

Max_sick 

EQU 

eoh 

Hungry_dec 

EQU 

01 

Sick_dec 

EQU 

01 

Nt_word 

Nt_last 


EQU 

EQU 


.-amount to inc or dec training of words 


.-amount to increase 'Hungry' for each feeding 
;below this starts complaining about hunger 
;below this starts complaining about sickness 
,-below this only complains about sickness 
;cant go below this when really sick 

;subtract X amount for each sensor trigger 
;subtract X amount for each sensor trigger 


FEH jturn speech word active off 
FBH ,-bit 2 off - lart word sent to TI 


A-12 







Nt_term 


EQU 

F7h 

,-bit 3 off -terminator to 

H 

1 

a 

Clr_spch 

EQU 

FCH 

.-clears spch_activ & word_activ 



CTS_lo 


EQU 

FDH 

makes TI_CTS go lo 



Motor_rev 

EQU 

FDH 

.-clears motor fwd bit 



Motor_inactv 

EQU 

FEh 

,-kill motor activ bit 



Motor_ntseek 

EQU 

FBh 

,-kill motor seek bit 



Motor_o£f 

EQU 

COh 

turns both motor lines off (hi) 



Motor_revs 

EQU 

7FH 

,-bit 

7 lo 



Motor_£wds 

EQU 

BFh 

.-bit 

6 lo 



Ntmot on 

EQU 

DFh 

{dears motor pulse on req 



Nt _IRQcui 

EQU 

F7h 

.-clear IRQ stat 



Nt_Motor_led 

EQU 

DFh 

;mo\.or opto led off 



Motor_led_.rst 

EQU 

100 

,-X • 2.9 millSec for shut 

off 

time 

Nt_Init_rootor 

EQU 

FBh 

,-cks motor speed only on wake 

up 

NT_Init_Mspeed 

EQU 

F7h 

.-clears 2nd part of motor 

speed test 

Opto_spd_reld 

EQU 

80 

.-number of IRQ to count opto pulse speed 

Speed_ref f 

EQU 

30 

value to adjust speed to 



Nt_macro_actv 

EQU 

7Fh 

,-clears request 




Not_bside EQU 
Not_binvrt EQU 
Not_tch_bk EQU 
Not_tch_£t EQU 
Not_£eed EQU 
Sound_reload 
Snd_cyc1e_r1ed 


Light_reload 

EQU 

07 

{X • 742 milisec until new reff level set 

Nt_Slot_dn EQU 

FEh 

; dr 

IR slot low detected 

Nt_lt_re£f EQU 

EFh 

.-turns reff off 

Nt_lght_stat 

EQU 

FEh. 

.-clears light bright status to dim status 


;;; Bright & Dim equates have been moved to the light include file. 


;;;Bright EQU 05 ,-light sensor trigger > reff level 

;;;Dim EQU 05 {Light sensor trigger < reff level 

; - 

{Qik_sna_reload EQU 01 j 

jNt_srd_re£f EQU DFh ,-kill sound reff level bit 

Nt_do_snd EQU FEh {clears sound state change req 

Nt_snd_stat ECU FBh {dears Sound_stat 

Nt_fortune EQU FEh {kills fortune teller mode 

Nt_Rap EQU FDh {kills R-p mode 

Nt_hideseek EQU FBh {kills Hide k seek game mode 

Nt_simon EQU »7h {kills simon say game mode 

l - 

Nt_do_tumny EQU F7h {dears sensor change req 

Nt_do_back EQU EFh {dears sensor change req 

Nt_do_feed EQU DFh {dears sensor change req 

Nt_do_tilt EQU BFh {dears sensor change req 

Nt_do_invert EQU 7Fh ;clears sensor change req 

Nt_do_lt_brt EQU FDh {dears sensor change req 


F7h {dear ball side done flag 
EFh {dear ball invert done flag 
BFh .clear touch back sense done flag 

DFh .-clear touch back sense done flag 

FDh .-clear feed sense done flag 

EQU 05 {X * 742 milisec time between trigger 

EQU 02 .-sound sense referrence cycle timer 


A-13 










Nt_do_lt_dim 

EQU 

FBh 

:clears sensor change req 

Nt_temp_gaml 

EQU 

FEh 

.-clears game m'-de bits 

Nt_half_age EQU 

BFh 

;clears req for 2 tal.e instead of 4 

Nt_randm EQU 

7Fh 

1 clears randam/seque tial status 

GameT_reload 

EQU 

24 

; 1= 742 mSEC ;j 255 = 189.3 -econds 


;OAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAV-AXXAAAAAAAAAAA i 

; 1 Variable definition (Ram « $£0 to $FF) 

; UAA A AAAAAAAAAXAAAXAMXAAAAAAAXAAA' AUUUUUUUUUUAAAO 

;Rdef 

...... DO NOT CHANGE RAM ASSIGNMENTS (X pointer used as offsett) 

............... T j, e next group of RAM locations can be used by any 

; sensor routine but cannot be used to save data. 


; 

TEMP 

ONL\ 

1 

i 


• • • 

koball 

TEMPO 

equ 

80h 


TEMPI 

equ 

61h 


TEMP2 

equ 

82h 


TEMP 3 

equ 

83h 


TEMI-4 

equ 

84h 


IN_DAT 


equ 

85h 

;•••***•*** 


■ » • 

end koba 1 1 

• * END TEMP 

RAM 



Task_ptr 

EQU 

66h 

,-what function is in process 

Port_A_image 

EQU 

87h 

Port_B_ Image 

EQU 

88H ;output port image 

Port_D_ Image 

EQU 

89H ;output port image 

Word_lo 


E'U 

8Ah ;speech word lo adrs 

Word_hi 


EQU 

SBh ; " hi • 

Saysent_lo 

EQU 

8CH 

;saysent word pointer 

Saysent_hi 

EQU 

8DH 


Bank_ptr 

EQU 

8 EH 

;which bank words are in 

Which_word 

EQU 

8FH 

;which word or saysent to call 

Srj : oup 


EQU 

90H .-which saysent group table 

Dc_data 


EQU 

91H ; 


; 


Which_motor 

EQU 

92h 

.-holds table number of motor positon 

Mgroup 


EQU 

93H ;which motor group table 

Motor_lo 

EQU 

94H 

• 

1 

Motptr_lo 

EQU 

95h 

;table pointer to get motor position 

Motptr_hi 

EQU 

96H 

• 

« 

Which_delay 

EQU 

97H 

,-how much time between motor calls 

Intt_Temp 

EQU 

98H 

s 

l 

Drift_fwd 

EQU 

99h 

.-time motor reverses to stop drift 

Drift_rev 

EQU 

9Ah 

9 

i 

Pot_timeL 

EQU 

9Bh 

.-motor uses to compare against current positon 


; moved to hi ram that is not cleared on power up 

jPot_timeL2 

Moff_len EQU 9Ch .-holds motor po*er off pulse time 

Mon_len EQU 9Dh .-hold?- motor power jn pulse time 

Motor_pulsel EQU 9Eh ;motor pulse timer 

Slot_vote EQU 9Fh ;need majority cnt to declare a valid slot 


A-14 













. iotor_led_t imer 

EQU 

Mot_speed_cnt 

EQU 

Mot_opto_cnt 

EQU 

Ca1_switcfc_cnt 

EQU 

motorstoped 

equ 

A4h 

Drift_counter 

EQU 

Mili_sec 

EQU 

A6h 

Cycle_timer EQU 

A7h 

Sensor_timer 

EQU 

Bored_timer EQU 

A9h 

Invrt_count 

EQU 

AAh 

Tilt_count 

EQU 

ABh 

Tchfrnt_count 

EQU 

Tchbck_count 

EQU 

Feed_count 

EQU 

AEh 

Last IR 


EQU 

Wait_tiroe 

EQU 

BOh 

Light_timer 

EQU 

Blh 

Lght_count 

EQU 

B2h 

Light_re£f 

EQU 

B3h 

Sound_timer 

EQU 

B4h 

Sound_count 

EQU 

B5h 

Milisec_£lag 

EQU 

Macro_Lo 

FOU 

E7h 

Macro_Hi 

EQU 

B8h 

Egg_cnt 


EQU 


HCEL_LO 


i • • • • 

EQU 

HCEL_HI 


EQU 

BIT_CT 


ECU 

I •••*••*•••■ 

big! _shift 

EQU 

BDh 

Pr«v_random EQU 

BEh 

Bored_count 

EQU 

BFh 

TEMP 5 

EQU 

COh 

Temp_ID2 

EQU 

Clh 

Temp_ID 


EQU 

Leam_temp 

EQU 

C3h 

Req_macro_lo 

EQU 

Req_macro_hi 

EQU 

Sickr_count 

EQU 

Coh 

Hungr_count 

EQU 

C7h 


AOh ;how long after action done led on for IR 
Alh ;motor speed test 
A2h ; ’ 

A3h ,-used to eliminate noisy reads 

;times wheel count when stopping 

A5h decides how much braking pulse to apply 

;used in calc pot position by timer 
;bypasses intt port c updates to motor 
A8h ;times between sensor trigger 
;time with no activity to random speech 

;which speech/motor call is next 
.•which speech/motor call is next 
ACh .-which speech/motor call is next 
ADh ;which speech/motor call is next 

.-which speech/motor call is next 

AFh .-last XR sample data to compare to next 
,-used in IRQ to create 2.8avSec timers 

;Light sense, routines 

.-which speech/motor call is next 

;holds previou. sample 

.-time to set new reff level 
.-which speech/motor call is next 

B6h ;set every 742 miliseconds 
,-table pointer 

B9h ,-easter egg table count pointer 

Koball code rev B 

BAh 

BBh 

BCh 

end koball 

;( was TMA_INT ) used for threshold change 


;prevents random number twice in a row 
.-sequential selection for bored table 
;general use also used for wake up 

.-use in sensor training routines 
C2h .-use in sensor training routines 
,-use in sensor training routines 


C4h ;holds last call to see if sleep or IR req 
C5h ; 

;sequential counter for sick speech table 
;sequential counter for hunger speech table 












Motor_pulse2 


EQU C8h ,-motor pulse timer 


DO NOT CHANGE BIT ORDER 


Stat_0 Equ C9h ;System status 

Want_naine EQU 01H ;bit 0 *set forces system to say Furey's name 

Lt_prev_dn EQU 02H ;bit 0 » done flag for quick light changes 

Init_motor EQU 04H ;bit 1 * on wnkeup do motor speed/batt test 

Init_Mspeed EQU C8H ;bit 3 ■ 2nd part of motor speed test 

Train_Bk_prev EQU 10H ;bit 4 » set when 2 back sw hit in a row 

Sav_new_name EQU 20H .bit 5 = only happens on cold boot 

REQ_dark_sleep EQU 40H ,-bit 6 = set -dark level sends to sleep 

Dark_sleep_prev EQU 80H ,-bit 7 = if set on wake up thendont 

gotosleep 
I 

Stat_l EQU CAH ;system status 


Word_activ 

EQU 

01H 

; bit 

0 = set during any speech 

Say_activ 

EQU 

02H 

.-bit 

1 = when saysent is in process 

Word_end 

EQU 

04H 

,-bit 

2 = set when sending FF word end to TI 

Word_term 

EQU 

08H 

,-bit 

3 = set to send 3 iffh to end speech 

Up_light 

EQU 

10H 

,-bit 

4 =set when shift is incrmntg 

Snd_ref£ 

EQU 

20H 

,-bit 

5 = set for new referrenc cycle 

Half_age 

EQU 

40H 

,-bit 

6 = set for 2 tables of age instead of 4. 

Randm_sel 

EQU 

80H 

; 1 it 

7 =decides random/sequential for tables 

Stat_2 

Motor_actv 

EQU 

EQU 

01H 

CBH 

,-bit 

;system status more 

0 = set = motor in motion 

Motor_fwd 

EQU 

02H 

.-bit 

1 = set=fwd clr=rev 

Motor_seek 

EQU 

04H 

;bit 

2 = seeking to next position 

Bside_dn 

EQU 

3H 

,-bit 

3 = set = previously flaged 

Binvrt_dn 

EQU 

10H 

; bit 

4 = set- prev done 

Tchf t_dn 

EQU 

20H 

,-bit 

5 * 

Tchbk_dn 

EQU 

40H 

,-bit 

6 * • 

Macro_actv 

EQU 

80H 

,-bit 

7 =set when macro in process 

Stat_3 

Lght_stat 

EQU 

EQU 

01H 

CCh 

,-bit 

,-system status 

0 * set=bright clr = dim 

Feed_dn 

Sound_stat 

EQU 

EQU 

04H 

02H 

jbit 

,-bit 1 = set- prev done 

2 - ■ 

IRQ_dn 


EQU 

08H 

,-bit 3 = set when IRQ occurs by IRQ 

Lt_reff 


EQU 

10H 

,-bit 4 =set for light sense reff cycle 

Motor_on 

EQU 

20H 

;bit 

5 = set=motor pulse power on 

M_forward 

EQU 

40H 

,-bit 

6 * lr ■ move motor forward 

M_reverse 

EQU 

80H 

;bit 



r*...... 

j Following bit maps are reserved for easter egg / games 


Stat_4 EQU CDh ;system task request state 

Do_snd EQU 01H ;bit 0 * set when sound > prev reff level 

Do_lght_brt EQU 02H ,-bit 1 « set when light > prev reff level 

Do_lght_dim EQU 04H ,-bit 2 » set when light < prev reff level 

Do_tummy EQU 08H ;bit 3 = set when front touch triggered 

Do_back EQU 10H ,-bit 4 * «et when back touch triggered 


A-16 










Do.feed 


EQU 

20H 

;bit 5 = set when feed sensor triggered 

Do_tilt 


EQU 

40H 

;bit 6 = set when tilt sensor triggered 

Do_invert 

EQU 

80H 


bit 

7 = set when inverted sensor triggered 

Stat_5 


Equ 

CEh 

.-game status 

temp_gaml 

EQU 

01H 


bit 

0 sused in game play 

t emp_gam2 

EQU 

02H 


bit 

0 « • ■ * • 

terop_gam3 

EQU 

04H 


bit 

1 - 

temp_gam4 

EQU 

OSH 


oit 

3 - 

temp gam5 

EQU 

10H 


bit 

4 » 

temp_gam6 

EQU 

20H 


bit 

5 » 

temp_gam7 

EQU 

4CH 


bit 

6 « 

temp_gam8 

; 

Game_l 

EQU 

BOH 


bit 

7 » 


EQU 

CFh 

;system game status 

Fortune, .mode 

EQU 

01H 

;bit 0 »set = furby in fortune teller mode 

Rap_mode 

EQU 

02H 

;bit 

0 »set » furby in RAP SONG mode 

Hideseek jnode 

EQU 

04H 

;bit 1 = set o furby in hide U seek game 

mode 






Simonsay_mode 

EQU 

OSH 

;bit 3 = set = furby in simon says game 

mode 

Burp_mode 

EQU 



bit 

4 =sel « mode 

Naae_mode 

EQU 

20H 


bit 

5 = 

Twinkle_mode 

EQU 

40H 

;bit 6 = 

Roos ter_mode 

EQU 

80H 

;bit 7 = 

Qualifyl: 

EQU 

DOh 

,-easter egg disqualified when clear 

DQ_fortune 

EQU 

Olh 

;bit 

C = fortune teller 

DQ_rap 


EQU 

02h 

;bit 1 = rap song 

DQ_hide 


EQU 

04h 

;bit 2 = hide and seek 

DO simon 

EQU 

08h 


bit 

3 = simon says 

DQ_burp 


EQU 

lOh 

;bit 4 = burp attack 

DO name 


EQU 

2 Oh 

;bit 5 = says his name 

DO twinkle 

EQU 

40h 

;bit 

6 = sings song 

DQ_rooster 

EQU 

80h 


bit 

7 = rooster Icves you 


1 


THIS GROUP OF RAM IS SAVED IN EEPROM 


s Need to read these from EEPROM and do test for false data 

; "age" uses bit 7 to extend the "age_counter* to 9 bits, and this 
; is saved in EERPOm also. 

j-AGE' MUST BE IN Dlh BECAUSE EEPROM READ & WRITE USE THE EQU FOR START 

RAM. 


Age 

EQU 

Dlh 

; Age 

- 0-3 (4 total) 

Age_counter 

EQU 

D2h 

; inc 

on motor action,rolls over U inc 

Name 

EQU 

D3h 

;holds 1-6 pointer to firby’s name 

Rvoice 


EQU 

D4h 

;which'one of three voices 

Pot_timeL2 

EQU 

D5h 

.■counter from wheel I.R. sensor 

Hungry_counter 

EQU 

D6h 

;holds hungry/full counter 

Sick_counte: 

r 

EQU 

D7h 

.■healthy/sick counter 

Saed_l 


EQU 

D8h 

,-only seed 1 6 seed 2 are saved 

Soed_2 


EQU 

D9h 

> ’ 


; These are used for training each sensor. There is a word number which 





; i« 1-16 for the sesnor table macro list and a ram for count which 
; determines how often to call the learned word. 


; *** DO NOT CHANGE ORDER- RAM adrs by Xreg offset 


Tilt_leamed 

EQU 

DAh 

;which word trained 



1 

Tilt_lm_cnt 

EQU 

DBh 

;count 

determines how 

often 

called 

2 

Feed_learned 

EQU 

DCh 

;which 

word trained 



3 

Feed_lm_cnt 

EQU 

DDh 

;count 

determines how 

often 

called 

4 

Light_learned 

EQU 

DEh 

;which 

word trained 



5 

Light_lrn_cnt 

EQU 

DFh 

1 count 

determine now 

often 

called 

6 

Dark_learned 

EQU 

EOh 

.-which 

word trained 



7 

Dark_lm_cnt 

EQU 

Elh 

;count 

determines how 

often 

called 

8 

Front_learned 

EQU 

E2h 

;which 

word trained 



9 

Front_lm_cnt 

EQU 

E3h 

;count 

determines how 

often 

called 

10 

Sound_learned 

EQU 

E4h 

;which 

word trained 



11 

Sound_lrn_cnt 

EQU 

E5h 

;count 

determines how 

often 

called 

12 

Wake_learned 

EQU 

Efh 

;which word trained 



13 

Wake_lrn_cnt 

EQU 

E7h 

;count 

determines how 

often 

called 

14 

Invert_learned 

EQU 

E8h 

which word trained 



15 

Invert_l rn_cnt 

EQU 

E9h 

;count 

determines how 

often 

called 

16 


; next is equates defining which ram to use for each sensor 
; according to the sensor ram defined above, (compare to numbers above) 


Tilt_ID 


EQU 

00 

;defines 

what offset for above._ram 

definitions 






Feed_ID 


EQU 

02 

• ■ 


Light_ID 

EQU 

04 

; ■ 



Dark_XD 


EQU 

06 

l * 


Front_ID 

EQU 

08 

• 



Sound_ID 

EQU 

10 

; ■ 



Wake_ID 


EQU 

12 

1 ’ 


Invert_ID 

EQU 

14 

i ■ 



Back_XD 


EQU 

EEh 

;special 

value triggers learn mode 


... 

• 

; For power on test, WE only clear ram to E9h and use EAh for a 
j messenger to the warm boot routine. We always clear ram and initialize 
i registers on power up, bat if it is a warm boot then read EEPROM 
; and setup ram locations. Location EAH is set or cleared during power 
up 

; and then the stack can use it during normal run. 


Warm_cold 

EQU 

EDh 

Spcl_seedl 

EQU 

EEh 

Spcl_seed2 

EQU 

EFh j 

Deep_sleep 

EQU 

FOh ;0=no deep sleep llh 

....... .... 

Need 

to allow stack growth down 


is. (tilt wont wakeup) 
1 EAh- FFH ) *•••••*•* 


A-18 







Stacktop EQU FFH ; Stack Top 


I ..... 

• • # • 

.••••••••••••••••••••••••••••••••••••■••••••••••••••••••■I 

* * • * 

».*. 

.... 

ORG 00H 

BLKW 300H, 00H .-Fill 0000 AAA 05FFH* 00 

;OAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA i 
; * ’ 

;» PROGRAM STARTS HERE > 

; * ’ 

jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU 

ORG 0600H 

RESET: 


Include 


Wake2.asm ;asm file 


end Tracker 


; For power on test, WE only clear ram to E9h and use EAh for a 

; messenger to the warm boot routine. We always clear ram and initialize 

; registers on power up, but if it is a warm boot then read E 'PROM 

; and setup ram locations. Location EAH is set or cleared duri. j power 


up 

; and then the 

j Clear RAM to 

stack can use 

OOH 

it during normal run. 


LDA 

«00H 

1 data for fill 

LDX 

• E9H 

; start at ram location 

RAMClear: 

STA 

00,X 

; base 00, offset x 

DEX 


; next ram location 

CPX 

• 7FH 

; check for end 

BNE 

RAMClear 

; branch, not finished 

1 fill done 


A-19 












Main: 



InitIO: 

LDA 

• 01 

;turn DAC on 

STA 

DAC_ctrl 

;DAC control 

LDA 

*Port_def 

.-set direction control 

STA 

Ports_dir 

;1oad reg 

LDA 

»Con_def 

.-set configuration 

STA 

Ports_con 

;load reg 

LDA 

• 00 

;set for bank 0 

STA 

Bank 

.-set it 

LDA 

•00H 

.-disable wakeup control 

STA 

Wake_up 

; 

LDA 

*00h 

.-disable sleep control 

STA 

Sleep 

.-set dor.t care 


LDA 

*Intt_dfIt 

;Initialize tleers 

STA 

Interrupts 

;lead reg 

LDA 

•00H 

;set timer mode 

STA 

TKA_CON 

; set reg 


LDA 

#Tizr.eA_lov.‘ 

,-get preset timer for interrupts 

STA 

TMA_LS5 


; load 

LDA 

*TimeA_hi 

;get hi byte for preset 

STA 

TMA_KSB 


.-load it 

LDA 

•TimeB_low 

.-get preset timer for interrupts 

STA 

TMB_LSB 


.-load 

LDA 

•TimeB_hi 

.-get hi byte for preset 

STA 

TKB_MSB 


,-load it 

LDA 

•COh 

;preset status for motors off 

STA 

Stat_3 



LDA 

• 00H 

; init 

ports 

STA 

Port_A 


;output 

LDA 

• 33H 

; init 

ports 

STA 

Port_B_Image 

;ram image 

STA 

Port_B 


;output 

LDA 

• 01H 

; init 

ports 

STA 

Port _C 


;output 

LDA 

•DOH 

.- init 

ports 

STA 

Port_D_Image 

,- ram image 

STA 

Port_D 


;output 

LDA 

•FFh 

.-milisec timer reload value 

STA 

Mili_sec 

,-also 

preset IRC timer 


CLI ;Enable IRQ 


A-20 


JSR Kick_IRQ ;wait for interrupt to restart 
JSR TI_reset ;go init TI (uses ’Cycle..timer•) 

. Preset motor speed, assuming mid ba?te*V life, we set the pulse width 
; so that the motor wont be running at 6 volts and bum out. We then 
• predict what the pulse width should be for any voltage. 

;preset motor speed 

;set motor on pulse timing 

;set motor off pulse timing 

itlltttttlttttttttttttttltttttttlttl. 

:«ttiSi««SiSii«®iii5iSiii5«i imutttmtmtilittMttt 

! 

Include Diag7.asm ;asm file 


LDA 

•Mpulse_on 

LDA 

• 11 

STA 

Mon_len 

LDA 

• 05 

STA 

Mof f_len 


****** Only called by diagnostic speech routines 

Be sure to set 'MACRG_HI' and all calls are in that 128 byte block. 


Diag_macro: 


STA 

Macro_Lc 

LDA 

»0b8h 

diag call 

CLC 


ADC 

Macro_Lo 

STA 

Macro_Lo 

LDA 

101 

STA 

Macro_Hi 

-JSR 

Get_macro 

JSR 

Notrdy 

RTS 



.save lo byte of Macro table entry 

;< 90h , ex offset to adrs-.400 added 


.-add in offset 
.•update 

,• get hi byte aars 400 = 190h 
.-save hi b te of Macro table entry 
;go start motor/speech 

;Do / get status for speech and motor 

;yo ! 


. Enter with Areg holding how many 30 mili second delay cycles 
Half_delayi 


STA 

TEMPI 

;save timer 

Half d2: 

LDA 

• 10 

.set 1/2 sec 

STA 

Cycle_timer 

;set it 

Half_d3: 

LDA 

Cycle_timer 

;ck if done 

BNE 

Half_d3 

1 loop 

DEC 

TEMPI 

J 

BNE 

Half_d2 

; loop 

RTS 


; done 





Test_byp: 


;We assume diagnostic only runs on coldboot 


... 

LDA *FFh {initialize word training variable 

STA Temp_ID j 

LDA »FFh j 

STA Hungry_counter ;preset furby's health 

STA Sick_counter 

.•••••••■■a...... 

; We sit here and wait for tilt to go away, and just keep incrementing 
; counter un-il it does. This becomes the new random generator seed. 

Init_md: 


INC 

TEMPI 

;random counter 

LDA 

Port_D 

;get switches 

AND 

• 03 

;check tilt 4 invert sw 

BNE 

Init_md 

{loop til gone 

LDA 

TEMPI 

;get new seed 

STA 

Spcl_seedl 

;stuff it 

STA 

Seed_l 

,-also load for cold boot 

; Use feed 

sw to generate a better random number 

JSF. 

Get_feed 

;go test sensor 

LDA 

Stat_4 

;get system 

AND 

•Do_£eed 

;ck sw 

BNE 

Feed_md 1 

;if feed sw then cold boot 

JMP 

End coldinit .-else do warm boot 

Feed_md: 



INC 

TEMPI 

{random counter 

LDA 

Stat_4 

;system 

AND 

• DFh 


STA 

Stat_4 

.-update 

JSR 

Get_feed 

{go test sensor 

LDA 

Stat_4 

{get system 

AND 

•Do_feed 

.•ck sw 

BNE 

Feed_md 

.-wait for feed to go away 

LDA 

TEMPI 

;get new seed 

STA 

Spcl_seedl 

.•stuff it 

STA 

Seed_l 

.-also load for cold boot 

1; IF this 

is a cold boot , reset command then clear EEPROM and 

j chose a 

new name and 

voice. 

Do_cold_boot: 


LDA 

*00 


STA 

Warm_cold 

,-flag cold boot 


A-22 








LEA 

Stat_0 

;system 

ORA 

•Say_new_name 

,-make system say new name 

STA 

Stat_0 

• 

t 


;••••••• NOTE ::::: 

; VOICE AND NAME SLECTION MUST HAPPEN BEFORE EEPROM WRITE OR 
; THEY WILL ALWAYS COME UP 00 because ram 'ust got cleared!!!!!! 


; Random voice selection here 


LDA 

«80h 

;ge- 

random/sequential split 

STA 

IN_DAT 


;save for random routine 

LDX 

• 00 

; make 

i sure only gives random 

LDA 

#10h 

;get 

number of random selections 

JSR 

Ran_seq 


;go get random selection 

TAX 

LDA 

Voice_table,X 

;get new voice 

STA 

Rvoice 


;set new voice pitch 


; On power up or reset, Furby must go select a new name , ,, ahw how 
cute. 


JSR 

Random 


; 

AND 

DlFh 

;get 

32 possible 

STA 

Name 

.-set 

new name pointer 

JSR 

Do_EE_write 

.-write the EEPROM 


End_coldinit r 


>*flllllflllitllllllfilltllllllllillttlfilltllfllllfllllllllfllliiixil 
;• 'Special initialization prior to normal run mode * 

; • Jump to Warm, boot when portD wakes us up 

jfcllllllllllllilflllllllllillllllllllllllilllllllllllllillllllllllllll 

; 

Warm_b°ot: ;no nal tart when Port_D wakes ur up. 

JSR S_EEK M_READ ;read data to ram 

l Epront_read_byp: 


; If light osc fails, or too dark and that sends us to sleep, we 
; set 'Dark_sl->ep_prev• and save it in EEPROM in 'Seed_2'. 

; when the sleep routine executes ,(00 01 based on this bit) 

; When we wake up we recover this bit and it becomes the previous done 
; flag back in 'Stat_0', so that if the osc is 








; still dark or failed, Furby wont go back to sleep. 


LDA 

Seed_2 

{from EEPROM 

BED 

No_prevsleep 

{jump if none 

LDA 

Stat_0 

;system 

ORA 

*Dark_sleep_prev 

;prev done 

STA 

Stat_0 

{update 


No_prevsleep: 


LDA Spcl_seedl ;recover start up random number 
STA Seed_l ;set generator 


Pot_timeL2 is save in ram through sleep mode and then reloaded * 
Pot_timeL which is the working register for the motor position. 
This allows startup routines to clear ram without forgetting the 
last motor position. 

LDA Pot_timeL2 .get current count 

STA Pot_ imeL ;save in motor routine counter 


; Get age and make sure it is not greater than 3 (age*! 



LDA 

Age 

;get current age 


AND 

»83h 

.•preserve bit 7 which is 9th age counter bit 

/;; 

f 


and insure age not >3 


STA 

Age 

.set system. 


LDA *Bored_reld ;reset timer 

STA Bored_time' ; 


LDA 103 ;set timer 

STA Last_IR ;timer stops IR from hearing own IR xmit 

JSR Get_light ;go get light level sample 

LDA TEMPI ;get new count 

STA Light_reff /update system 


LDA 

Warm^cold 

{decide if warm or cold boot 

CMP 

»llh 

;ck for warm boot 

BEQ 

No_zero 

{jump if is 


A-24 









LDA 

STA 

STA 

JSR 

JSR 

»00 

Macro_Lo 

Macro_Hi 

Get_macro 

Notrdy 

;point to macro 0 (SENDS TO SLEEP POSITION) 

;go start motor/speech 

;Do / get status for speech and motor 

zeros 



LDA 

STA 

•11 

Mon_len 

;preset motor speed 

;set motor on pulse timing 

LuA 

STA 

• 05 

Moff_len 

.-set motor to 3/4 speed for speed test 
,-set motor off pulse timing 

LDA 

STA 

• 00 

3tat_4 

;clear all system sensor requests 
;update 


; Currently uses 4 tables, one for each age. 


LDA Stat_0 
ORA •Init_motor :flag 
ORA *Init_Mspeea 
STA Stat_0 


;system 

motor to do speed test 
;2nd part of test 
;update 


; Do wake up routine s 


Ida *Global_time 
STA Sensor_timer 

LDA #80h 
STA IN_DAT 

LDX »00h 
LDA *10h 
. JSR Ran_seq 

' LDA TEMPI 

STA IN_DAT 
LDA *Wake_ID 
(offset) 

JSR Start_learn 
LDA IN_DAT 

JSR Decid_age 
LDX TEMPO 
LDA Wakeup_Sl,X 
STA Macro_Lo 
INX 

LDA Wakeup_Sl,X 

STA Macro_Hi 
JMP Start_macro 


:reset timer to trigger sensor learning 


;get random'sequential split 

.-save for random routine 

.-make sure only gives random 
;get number of random selections 
;go get random selection 
;g«t decision 

,-save decision 

;which ram location for leamea word count 

;go record training info 

;get back word to speak 

;do age calculation for table entry 

;age offset 

;get new sound/word 

,-save lo byte of Macro table entry 

s 

;get new sound/word 

,-save hi byte of Macro table entry 

;go start speech 





;«lillilllllllllllllllllllllllllllillllliilllllllltllllllllllllllilll 
'IDLE Routine • 

ittlttlittltltlllltltttltlltttllllttttltltttllittttttlltlitttllltlttii 


Idle: 


; Idle routine is the time slice task master (TSTM) ugh! 

; We must call each routine and interle-ve with a call to speech 
; to insure we never miss a TI request for data. 

JSR Notrdy ;Do / get status for speech and motor 


; *" *....... 

; THis bit is set when light sensor is darker than - Dark_sleep’ 


LDA 

Stat_0 

; system. 

AND 

*REQ_dark_sleep ;ck for 

BEQ 

No_dark_req 

;jump if not 

LDA 

Stat_0 

;system 

AND 

tBFh 

;kill req 

STA 

Stat_0 

;update 

LDA 

#A6h 

;sleep macro 

STA 

Macro_Lo 


LDA 

tOOh 

;sleep macro 

STA 

Macro_Hi 

; 

JMP 

Start_macro 

;go say it 


No_dark_req: 


; When any sensor or timer calls the ■start_macro' routine, the 
; Macro_Lo & Macr _Hi are saved. Everyone jumps back to Idle and when 
I speech/motor routines are finished, this routine will look at the 
I macros that were used and execute another function if a match is 
found. 

I 

I Checks for his name first, then any IR to send, and finally, the Bleep 
; commands. THe temp macro buffers are cleared before 


Spcl_Namel: 
LDX 

Spcl_Name2: 
LDA 
CMP 
BEQ 
CMP 
BNE 
INX 
LDA 
CMP 


«00 ;offset 

Ck_Name_table,X ;ck lo byte 

tFFh ;ck for end of table (note 255 cant execute) 

Spcl_IRl ;done if is 

Req_macro_lo jck against last speech request 

Not_Name2 ;jump if not 
; to hi byte 

Ck_Name_table.X ;ck hi byte 

Req_macro_hi ;ck against lasspeech request 


A-26 






BNE 

Not _Name3 

.•jump if not 

JMP 

Say„Sname 

; speak it 

Not_Name2: 



I NX 


J 

Not_Nama3: 



INX 


; 

JMP 

Spcl_Name2 

; loop til done 

Say_Sname: 



LDA 

Stat_0 


AND 

•DFh 

,-kill req for startup new name 

STA 

Stat_0 

.■update 

LDA 

Name 

;current setting for table offset 

CLC 



ROL 

A 

;2's comp 

TAX 



LDA 

Name_table. X 

; get lo byte 

STA 

Macro_Lo 

; save lo byte of Macro table entry 

INX 


; 

LDA 

Name table.X 

.-get hi byte 

STA 

Macro_Hi 

,-save hi byte of Macro table entry 

JSR 

Oet_macro 

;go start motor/speech 

JSR 

Notrdy 

;Do / get status for speech and nw3tor 

Spcl_IRl: 



LDX 

#00 

;offset 

Spcl_IR2: 



LDA 

IRxmit_tabie 

1 ,X ;ck lo byte 

CMP 

#FFh 

;ck for end of table (note 255 cant execute) 

BEQ 

Spcl_IR_dn 

.•done if is 

CMP 

Req_macro_lc 

;ck against last speech request 

BNE 

Not_IRxmit2 

.•jump if not 

INX 


;to hi byte 

LDA 

IRxmit table 

,X ;ck hi byte 

CMP 

Req_niacro_hi 

;ck against last speech request 

BNE 

Not IRxmit3 

;jump if not 

INX 


.•point to IR table 

LDA 

IRxmi t_table,X 

STA 

TEMP2 

;xmit temp rrm 

LDA 

#FDh 

;TI consnand for IR xmit 

STA 

TEMPI 

J 

JSR 

Xmit_TI 

;go send it 

LDA 

•Bored_reld 

.■reset bored timer 

STA 

Bored_timer 

> 

LDA 

• 03 

; set t imer 

STA 

Last _IR 

.•timer stops IR from hearing its own IR 

xmit 



JMP 

Spcl_IR_dn 

.■done - ola. 

Not IRxmi t2 



INX 


;lo byte 

Not IRxmit3 

s 


INX 


jhi byte 

INX 


;xmit pointer 

JMP 

Spcl_IR2 

;loop til done 


Spcl_IR_dn: 




.■offset 


Spcl_macrol: 

LDX #00 
Spcl_sleepl: 

LDA Sleepy_table,X ;ck lo byte 

CMP *FFh ;ck for end of table (note 255 cant execute) 

BEQ Ck_macro_dn ;dcne if is 

CMP Req_macro_lo ;ck against last speech request 

BNE Not_sleepy2 ;jump if not 

INX ; to hi byte 

LDA Sleepy_table,X ;ck hi byte 

CMP Req_jnacro_hi jck against last speech request 

BNE Not_sleepyj ;jump if not 

LDA 100 ;clear macro pointers for wake up 

STA Req_macro_lo 
STA Req_jnacro_hi 

;mod F-rels2 ; 

; Before going to sleep send sleep cmnd to all others. 


LDA 

115 


STA 

TEMP2 

xmit temj ram 

LDA 

IFDh 

;TI command for IR xmit 

STA 

TEMPI 

• 

• 

JSR 

Xmit_TI 

;go send it 


;need to wait >600 milisec before going to sleep because we arent using 
.•busy flags from TI and need to make sure it is done transmitting the 
;I.R. code, the sleep routine kills the TI and it would never send the 
cmnd. 

LDA #25 ;how many 30 milisec cycles to call 

JSR Half_delay ;do 30milisec delay cycles 

;end mod 

JMP GoToSleep ;nity-night 


Not_sl6epy2: 

INX 

Not_sleepy3: 

INX I 

JMP Spcl_sleepl .-loop til done 

Ck_macro_dn. 

LDA 100 ;clear macro pointers for wake up 

STA Req_macro_lo 
STA Req_macro_hi 

JMP Test_new_name ;on to task master 


SLEEP TABLE & IR table . MOVE TO INCLUDE FILE LATER 

Sleepy_table: 


DW 

91 

;hangout 

DW 

166 

;wake up 

DW 

167 

;wake up 

DW 

166 

;wake up 

DW 

169 

;wake up 






CM 

258 

;Back sw 








DW 

259 

;Back sw 








DW 

260 

;Back sw 








DW 

403 

jlR 








DW 

413 

ilR 








DW 

429 

; IR 








DB 

FFh,FFh ;FF FF is 

table terminator 


IRxmit_table: 









DW 


.•trigger macro 








DB 

00 

;which IR conroand 

to 

call 

( 

0 

- 

Of 


DW 

13 

;trigger macro 








DB 

00 

.•which IR command 

to 

call 

( 

0 


Of 


DW 

17 

.•trigger macro 








DB 

00 

.•which IR conroand 

to 

call 

( 

0 

- 

Of 


DW 

19 

;trigger macro 








DB 

00 

.•which IR command 

to 

call 

( 

0 

- 

Of 


CM 

26 

.•trigger macro 








DB 

00 

;which IR conroand 

to 

call 

( 

0 

- 

Of 


DW 

29 

;trigger macro 








DB 

00 

.•which IR command 

to 

call 

{ 

0 

- 

Of 


DW 

33 

;crigger macro 








DB 

00 

.•which IR command 

to 

call 

( 

0 

- 

Of 


DW 

34 

;trigger macro 








DE 

00 

;which IR command 

to 

call 

( 

0 

- 

Of 


DW 

44 

;trigger macro 








DB 

00 

;which IR command 

to 

call 

( 

0 

- 

Of 


DW 

45 

.•trigger macro 








DB 

00 

.•which IR conroand 

to 

call 

( 

0 

- 

Of 


DW 

48 

(trigger macro 








DB 

00 

.•which IR command 

to 

call 

( 

0 

- 

Of 


DW 

50 

;trigger macro 








DB 

00 

.•which IR conroand 

to 

call 

( 

0 

- 

Of 


DW 

55 

;trigger macro 








DB 

00 

;which IR command 

to 

call 

l 

0 

- 

Of 


DW 

60 

;trigger macro 








DB 

00 

;which IR command 

to 

call 

( 

0 

- 

Of 


DW 

149 

;£rom rooste.- wake up 






DB 

00 

! 








DW 

352 

;trigger macro 








DB 

01 

;which IR conroand 

to 

call 

( 

0 

- 

Of 


DW 

363 

.•trigger macro 








DB 

01 

.•which IR command 

to 

call 

( 

0 

- 

Of 


DW 

393 

,• trigger macro 








DB 

01 

.•which IR command 

to 

call 

( 

0 

“ 

Of 


DW 

248 

,• trigger macro 








DB 

02 

.■which IR command 

to 

call 

( 

0 

- 

Of 


DW 

313 

(trigger macro 








DB 

02 

.•which IR command 

to 

call 

( 

0 

“ 

Of 


DW 

86 

trigger macro 








DB 

03 

.•which IR conroand 

to 

call 

( 

0 

- 

Of 


CM 

93 

,• trigger macro 








DB 

03 

.■which IR conroand 

to 

call 

( 

0 

- 

Of 


CM 

339 

.•trigger macro 









A-29 




DB 

03 

.-which IR command 

to 

call 


0 

- 

Of 

> 

DW 

344 

;trigger macro 








DB 

03 

;which IR command 

to 

call 


0 

- 

Of 


DW 

351 

;trigger macro 








DB 

03 

.-which IR command 

to 

call 


0 

- 

Of 


DW 

404 

;trigger macro 








DB 

04 

;which IR command 

to 

call 


0 

- 

Of 


DW 

405 

,-trigger macro 








DB 

04 

;which IR command 

to 

call 


0 

- 

Of 


DW 

293 

,- trigger macro 








DB 

05 

;which IR command 

to 

call 


0 

- 

Of 


DW 

394 

;trigger macro 








DB 

05 

;which IR comnand 

to 

call 


0 

- 

Of 


DW 

406 

;trigger macro 








DB 

05 

,-which IR command 

to 

call 


0 

- 

Of 


DW 

414 

;trigger macro 








DB 

05 

.-which IR command 

to 

call 


0 

- 

Of 


W 

422 

;trigger macro 








DB 

05 

,-which IR command 

to 

call 


0 

- 

Of 


DW 

395 

;trigger macro 








DB 

06 

;which IR comnand 

to 

call 


0 

- 

Of 


DW 

421 

;trigger macro 








DB 

06 

;which IR command 

to 

call 


0 

- 

Of 


DW 

423 

;trigger macro 








DB 

06 

;which IR command 

to 

call 


0 

- 

Of 


DW 

296 

;trigger macro 








DB 

07 

;which IR command 

to 

call 


0 

- 

Of 


DW 

41b 

;trigger macro 








DB 

07 

;which IR command 

to 

call 


0 

- 

Of 


DW 

416 

;trigger macro 








DB 

07 

;which IR command 

to 

call 


0 

- 

Of 


DW 

288 

;trigger macro 








DB 

08 

;which IR command 

to 

call 


0 

- 

Of 


DW 

11 

;trigger macro 








DB 

09 

;which IR command 

to 

call 


0 

- 

Of 


DW 

12 

,- trigger macro 








DB 

09 

;which IR command 

to 

call 


0 

- 

Of 


DW 

27 

;trigger macro 








DB 

09 

.-which IR command 

to 

call 


0 

- 

Of 


DW 

42 

;trigger macro 








DB 

09 

;which IR command 

to 

call 


0 

- 

Of 


DW 

57 

;trigger macro 








DB 

09 

.-which IR command 

to 

call 


0 

- 

Of 


DW 

235 

;trigger macro 








DB 

09 

;which IR command 

to 

call 


0 

- 

Of 


DW 

236 

;trigger macro 








DB 

09 

,-which IR command 

to 

call 


0 

- 

Of 


DW 

237 

;trigger macro 








DB 

09 

; which IR comma .d 

to 

call 


0 

- 

Of 


DW 

238 

,- trigger macro 








DB 

09 

;which IR command 

to 

call 


0 

- 

Of 


DW 

261 

; trigger macro 








DB 

09 

;which IR command 

to 

call 


0 

- 

Of 


DW 

262 

; trigger macro 











DB 

09 

;which IR command 

to 

call 

1 0 

DW 

396 

itrigger macro 




DB 

09 

;which IR command 

to 

call 

( 0 

DW 

409 

;trigger macro 




DB 

09 

;which IR command 

to 

call 

( 0 

DW 

399 

.•trigger macro 




DB 

10 

.•which IR command 

to 

call 

( 0 

DW 

407 

;trigger macro 




DB 

10 

.•which IR command 

to 

call 

( 0 

DW 

408 

;trigger macro 




DB 

10 

;which IR command 

to 

call 

( 0 

DW 

272 

trigger macro 




DB 

11 

;which IR command' 

to 

call 

( C 

DW 

273 

;trigger macro 




DB 

11 

.•which IR command 

to 

call 

( c 

DW 

274 

;trigger macro 




DB 

11 

.•which IR command 

to 

call 

( 

DW 

275 

.•trigger macro 




DB 

11 

.•which IR command 

to 

call 


DW 

400 

;trigger macro 




DB 

11 

.•which IR command 

to 

call 


DW 

418 

.•trigger macro 




DB 

11 

;which IR command 

to 

call 


DW 

425 

;trigger macro 




DB 

11 

.•which IR command 

tc 

call 


DW 

426 

trigger macro 




DB 

11 

;which IR command 

to 

call 


DW 

336 

;trigger macro 




DB 

12 

;which IR command 

to 

call 


DW 

342 

;trigger macro 




DB 

12 

;which IR command 

to 

call 


DW 

401 

;trigger macro 




DB 

12 

.-which IR command 

to 

call 


DW 

92 

.•trigger macro 




DB 

13 

;which IR command 

to 

call 


DW 

411 

;trigger macro 




DB 

13 

.•which IR command 

to 

call 

( 

DW 

419 

;trigger macro 




DB 

13 

.■which IR conmand 

to 

call 


DW 

427 

.•trigger macro 




DB 

13 

;which IR command 

to 

call 


DW 

291 

.•trigger macro 




DB 

14 

.•which IR comnai d 

to 

call 


DW 

402 

; trigger macro 




DB 

14 

;which IR command 

to 

call 


DW 

412 

;trigger macro 




DB 

14 

.•which IR command 

to 

call 


DW 

428 

.•trigger macro 




DB 

14 

;which IR command 

to 

call 


CM 

256 

.•trigger macro 




DB 

15 

;which IR conmand 

to 

call 


DW 

257 

.•trigger macro 




DB 

15 

.•which IR conmand 

to 

call 


DW 

420 

.•trigger macro 





- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of I 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

- Of ) 

0 - Of » 
0 - Of ) 
0 - Of ) 
0 - Of ) 

0 - Of ) 
0 - Of ) 
0 - Of ) 
0 - Of ) 

0 - Of ) 
0 - Of ) 





DB 15 ;which IR coranand to call ( 0 - Of ) 

;mod F-rels2 ; send sleep if recv sleep on IR 


DW 

403 

;trigger macro 



DB 

15 

;which IR command to 

call ( 0 

- Of ) 

DW 

413 

; trigger i«acro 



DB 

15 

.•which IR command to 

call ( 0 

- Of ) 


; end mod 

DB FFh.FFh ;FF FF is table terminator 


Ck_Name_table: 

DW 97 
DW 248 
DW 393 
DW 414 
DW 149 
DW 305 
DW 404 
DW 421 

DB FFh.FFh ;FF FF is table terminator 


; Say name 
Test_new_name: 

LDA Stat_0 ;system 

AND #Say_new_name ;-ake system say new name 

BEQ Nosayname ;bypass ll clear 

LDA Stat_0 

AND »DFh .-kill req for startup new name 

STA Stat_0 ;update 

LDA Name ;current setting for table offset 

CLC 

ROL A ! 2's comp 

TAX 

LDA Name_table,X ;get lo byte 

STA Macro_Lo .save lo byte of Macro table entry 
I NX 

LDA Name_table,X ;get hi byte 

STA Macro_Hi ;save hi byte of Macro table entry 

JSR Get_macro jgo start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

Nosayname: 


. ..... below routines run at 742 msec loops 
• Timer B sets 'Milisec_flag' each 742 miliseconds 


A-32 







Updt_timer: 

LDA Mil : sec_flag ;if >0 Chen 742 mili seconds have passed 

BEQ TimerL_dn ;bypass if 0 

LDA »00 ;clear it 

STA Milisec_flag ;reset 

LDA Sensor_timer ;get current timer * 742ir^ec sec 

BEQ TimerLl ;do nothing if 0 

DEC Sensor_timer j-1 

TimerLl: 

LDA Light_timer ;get current timer • 742mSec sec 
BEQ TimerL2 ,-do nothing if 0 

DEC Light_timer ;-l 

TimerL2s 

LDA Sound_timer ;get current timer * 742mSec sec 
BEQ TimerL3 ;do nothing if 0 

DEC Sound_timer ;-l 

TimerL3: 

LDA Bored_timer ;get current timer * 742mSec 
BEQ TimerL4 ;do nothing if 0 

DEC Bored_timer ;-l 

TimerL4: 

LDA Last_IR ;get current timer * 742mSec 

BEQ TimerLS ;do nothing if 0 

DEC Last_IR ;-l 

TimerL5: 


TimerL_dn: 



INC 

Task_ptr 

;*1 

LDA 

Task_ptr 

; get it 

CLC 



SBC 

*08 

;ck if off end 

BCC 

Ck_tsk_A 

;jump if <9 

LDA 

*01 

;reset pointer 

STA 

Task_ptr 

• 

* 

Ck_tsk_A: 




; If too sick then no game play,,, 


CLC 

LDA Sick_counter ;how sick is he 

SBC »Really_sick J 

BCS Ck_task_egg ;do egg if not 

JMP Ck_bored ;bypass if too sick 


, Scan all game mode pointers to determine if any are c-tive. 

. Continue to execute the first active game found, and ti.it game always 
; allows the task list to be scaned for sensor input. If no games are 
; active, than check task 0 to determine if the correct sensor sequence 
; is occuring which will initiate tha next game. 

Ck_task_egg: 

LDA Qame_l ;get game active bits 

ror A ,-move bit 0 to earn' 

BCC ck_g2 ;check next if not activ 


A-33 



Ck_g2 

JMP 

! 

Game_fortune ;jump if active 


ROR 

A 

.•bit 1 


-BCC 

Ck_g3 

;check next if not activ 

Ck_g3 

JMP 

Oame_Rap 

;jump if active 


ROR 

A 

; bit 2 


BCC 

Ck_g4 

.■check next if not activ 

Ck_g4 

CMP 

: 

Oame_hideseek ;jump if active 


tor 

A 

;bit 3 


BCC 

Ck_g5 

.check next if not activ 

Ck_g5 

JMP 

Qame_simon 

•jump if active 


ROR 

A 

;bit 4 


BCC 

Ck_g6 

.•check next if not activ 

Ck_g6 

JMP 

Game_Burp 

;jump if active 


ROR 

A 

.•bit 5 


BCC 

Ck_g7 

;check next if not activ 

Ck_g7 

JMP 

G ame _name 

,-jump if active 


ROR 

A 

.bit 6 


BCC 

Ck_g8 

.•check next if not activ 

Ck_g8 

JMP 

Game_twinkle 

,-jump if active 


ROR 

A 

.-bit 7 


BCC 

Ck_g9 

.•check next if not activ 


JMP 

Game_rooster 

,-jump if. active 


Ck_g9: 


; none active 

; 


; Task 0 : scans all active requests from sensors looking for a trigger. 
; If any are set then scan through the game select tables for each game 
; looking for a match, and increment the counter each time a succesive 
; match is found. If one is not in sequence, then that counter is reset 
to 

; zero. Since all counters are independent, then the first one to 
completion 

; wins and all others are zeroed. 

• 

t 

; All sensor triggers are in one status byte so we can create a number 
I based on who has been triggered (we ignore the I.R. sensor). 

I The following bits are in Stat_4 and are set when they are triggered 
■ by the inJ-ual sensor routines : 

; 00 = none 
; 01 = Loud sound 
; 02 = Light change brighter 
; 04 = Light change darker 
; 08 = Front tummy switch 

; 10 = Back switch 

; 20 = Feed switch 

• 40 = Tilt switch 


A-34 








; 80 = Invert switch 


; We assr 1 a single bit per game or egg senario. Each time a 
; sensor . : triggered, we increment Che counter and test all eggs for 
; a match. If a particular sensor doesnt match, then set its 
disqualified 

; bit and move on. If at any time all bits are set, then clear counter 
to 

; zero and start over. WHen a table gets an FF then that egg is 
executed. 

; Each time a sensor is triggered, the system timer is reset. This timer 
; called 'Sensor_timer 1 is reset with , Global_time• equate. This timer is 
also 

; used for the random sequential selection of sensor responses. If this 
; timer goes to zero before an egg is complete, ie, Furby has not been 
played 

; with, then clear all disqualified bits and counters. 

; Currently there are 24 possible eggs. (3 bytes) 

;Qualifyl: 


;DQ_fortune 

EQU 

01 

; bit 

0 

= fortune teller 

;DQ_rap 


EQU 

02 


bit 1 = rap song 

;DQ_hide 

EQU 

04 

.-bit 

2 

= hide and seek 

;DQ_simon 

EQU 

08 

.-bit 

3 

= simon says 

;DQ_burp 

EQU 

10 

;bit 

4 

= burp attack 

;DQ_name 

EQU 

20 

;Lit 

5 

= say name 

;DQ_twinkle 

EQU 

40 

;bit 

6 

= sing song 

;DQ_rooste 

EQU 

80 

;bit 

7 

= rooster-love you 

; Qualify2: 


removed 

due to 

lack of RAM 

; bit 0 

s 





j bit 1 

s 





; bit 2 

s 





; bit 3 

= 





; bit 4 

s 





I bit 5 

s 





; bit 6 

s 





; bit 7 

* 






; Test triggers here 


Ck_game: 

I LDA 

LDA 
BNE 
JSR 

Ck_gamactv: 
LDA 
CMP 
BNE 
I LDA 

j CMP 

; BNE 

JSR 

Ck_anysens: 

LDA 

BNE 

JMP 


Eensor_timer ;ck if no action for a while 

Bored_timer ;ck if no action for a while 
Ck_gamactv ;jump if system active 

Clear_games ;go reset all other triggers and game pointers 


Qualifyl 
• FFh 

Ck_anysens 

Qualify2 

#00h 

Ck_anysens 

Clear_games 


;test if all are disqualified 
.•compare activ bits only 
ijump if some or all still active 
;test if all are disqualified 
compare activ bits only 
;jump if some or all still active 
;go reset all ot l er triggers and game pointers 


Stat_4 

Ck_gaml 

Ck_bored 


;ck if any sensor is triggered 
;go ck games if any set 
;bypass if none 




Ck_gaml: 

/fortune teller 


LDX 

Egg_cnt 

/get current count 


LDA 

Qualifyl 

update game qualification 


AND 

*DQ_fortune 

/check if dia-qualified bit 


BNE 

Ck_gam2 

/bail out if is 


LDA 

Fortune_table,X /get current data 


AND 

Stat_4 

/compare against sensor 

trigger 

BNE 

Ck_gamla 

/if set then good compare 


LDA 

Qualifyl 

/update game qualification 


ORA 

#DQ_fortune 

/set dia-qualified bit 


STA 

Qualifyl 

/update system 


JMP 

Ck_gam2 

/check next egg 


rk_gamla: 




LDA 

Fortune_table*l,X /get current ♦! to see if end of egg 

CMP 

*FFh 

/test if end of table and start of game 

BNE 

Ck_gam2 

/jump if not at end 


JSR 

Clear_games 

/go reset all other triggers and gome painters 

LDA 

Game_l 

/get system 


ORA 

#Fortune_mode /start game mode 


STA 

Game. 1 

/update 


JMP 

Idle 

z done 


Ck_gam2: 

Z Rap mode 



LDA 

Qualifyl 

/update game qualification 


AND 

«DQ_rap 

/check if dis-qualified 

bit 

BNE 

Ck_gam3 

/bail out if is 


LDA 

Rap_table,X 

/get current data 


AND 

Stat_4 

/compare against sensor 

trigger 

BNE 

Ck_gam2a 

/if set then good compare 


LDA 

Qualifyl 

/update game qualification 


ORA 

#DQ_rap 

/set dis-qualified bit 


STA 

Qualifyl 

/update system 


JMP 

Ck_gam3 

zcheck next egg 


Ck_gam2a: 




LDA 

Rap_table»l 

X /get current data ♦! to 

see if end of egg 

CMP 

#FFh 

/test if end of table and start of game 

BNE 

Ck_gam3 

/jump if not at end 


JSR 

Clear_games 

/go reset all other triggers 

and game pointers 

LDA 

Game_l 

/get system 


ORA 

»Rap_mode 

/start game mode 


STA 

Game_l 

/update 


JMP 

Idle 

Z done 


Ck_gam3: 

/ Hide and 

seek 


LDA 

Qualil/1 

/update game qualification 


AND 

*DQ_hide 

/check if dis-qualified bit 


BNE 

Ck_gam4 

/bail out if is 


LDA 

Hseek_table,X /get current data 


AND 

Stat_4 

/compare against sensor 

trigger 

BNE 

Ck_gam3a 

/if set then good compare 


LDA 

Qualifyl 

/update game qualification 


ORA 

*DQ_hide 

/set dis-qualifiad bit 


STA 

Qualifyl 

/update system 


JMP 

Ck_gam4 

/check nect egg 


Ck_gamJa: 




LDA 

Hseek_table*l,X /get current data el to 

see if end of egg 

CMP 

#FFh 

/test if end of table and start of game 

BNE 

Ck_gam4 

zjurp if not at end 


JSR 

Clear_garoes 

/go reset all other triggers 

and game point r—s 




LDA 

Game_l 

;get system 



ORA 

*Hideseek_mode ;start game mode 



STA 

Game_l 

;update 



JMP 

Idle 

; done 



C vim4: 

> Simon says 



LDA 

Qualifyl 

.-update game qualification 



AND 

»DQ_simon 

;check if dis-qualified bit 



BNE 

Ck_gam5 

,-bail out if is 



LDA 

Simon_table,X ;get current data 



AND 

Stat_4 

;compare against sensor 

trigger 


BNE 

Ck_gam4a 

;if set then good compare 



LDA 

Qualifyl 

.-update game qualification 



ORA 

#DQ_simon 

;set dis-qualified bit 



STA 

Qualifyl 

,-update system 



JMP 

Ck_gam5 

;check next egg 



Ck_gam4 a• 





LDA 

Simon_table*l,X ;get current data *1 to 

see if end of 

egg 

CMP 

#FFh 

.-test if end of table and start of game 


BNE 

Ck_gamS 

,-jurop if not at end 



JSR 

Clear_gair.es 

;gc reset all other triggers and game pointers 

LDA 

Game_l 

;get system 



ORA 

#Simonsay_mode ;start game mode 



STA 

Game_l 

.-update 



LDA 

#00 

;clear all pointers 



STA 

Stat_5 

;system 



JMP 

Idle 

; dene 



Ck_gam5: 

/ Burp atta: 

:k 



LDA 

Qualifyl 

.•update game qualification 



AND 

#DO burp 

;check if dis-qualified bit 



BNE 

Ck_gam6 

,-bail out if is 



LDA 

Burp_tabl ) 

C .-get current data 



AND 

Stat_4 

;compare against sensor 

trigger 


BNE 

Ck_gamSa 

;if set then good compare 



LDA 

Qualifyl . 

.-update game qualification 



ORA 

#DQ_burp 

.-set dis-qualif ied bit 



STA 

Qualifyl 

;update system 



JMP 

Ck_gam6 

;check next egg 



Ck_gam5a: 





LDA 

Burp_table*l, X ;get current data ♦! to 

see if end of 

egg 

CMP 

#FFh 

;test if end of table and start of game 


BNE 

Ck_gam6 

.-jump if not at end 



JSR 

Clear_games 

/ jo reset all other triggers and game pointers 

LDA 

Game_l 

.-get system 



ORA 

#Burp_mode 

.■start game mode 



STA 

Game_l 

update 



LDA 

#00 

;clear all pointers 



STA 

Stat_5 

,- system 



JMP 

Idle 

; done 



Ck_gam6: 

/ say name 




LDA 

Qualifyl 

.-update game qualification 



AND 

#DQ_name 

/check if dis-qualified bit 



BNE 

Ck_gam7 

,-bail out if is 



LDA 

Name_egg,X 

/get current data 



AND 

Stat_4 

/compare against sensor 

trigger 


BNE 

Ck_gam6a 

/if set then good compare 



LDA 

Qualifyl 

/update game qualification 



ORA 

#DQ_name 

/set dis-qualified bit 





STA Qualifyl .-update system 

JMP Ck_gam7 ;check next egg 

Ck_gam6a: 

LDA Name_egg*l,X ;get current data +1 to see if end of egg 

CMP »FFh ;test if end of table and start of game 

BNE Ck_gam7 .-jump if not at end 

JSR Clear_gamea ;go reset all other triggers and game pointers 

LDA Garoe_l .-get system 

ORA *Name_mode ;start game mode 

STA Game_l .-update 

LDA *00 .-clear all pointers 

STA Stat_5 ;system 

JMP Idle ;done 

Ck_gam7: ; twinkle song 

LDA Qualifyl ,-update game qualification 

AND #DQ_twinkle ,-check if dis-qualified bit 
BNE Ck_gamS ;bail out if is 

LDA Twinkle_egg,X ;get current data 

AND Stat_4 .compare against sensor trigger 

BN5 Ck_gam7a ;if set then good compare 

LDA Qualifyl .-update game qualification 

ORA *DQ_twi kle ,-set dis-qualified bit 
STA Qualifyl .-update system 

JMP Ck_gam8 ;check next egg 

Ck_gam7a: 

LDA Twinkle_egg»l,X ,-get current data *1 to see if end of egg 
CMP *FFh ;test if end of table and start of game 

BNE Ck_gam8 ;jump if not at end 

JSR Clear_games ;go reset all other triggers and game pointers 

LDA Game_l .-get system 

ORA *Twinkle_mcde start game mode 

Sl'A Game_l ,-update 

LDA *00 ;clear all pointers 

STA Stat_5 ;system 

JMP Idle .-done 


Ck_gam8: 

; roos 1 er lov»s you 


LDA 

Qualifyl 

;update game qualification 


AND 

»DO rooster 

.-check if dis-qualified bit 


BNE 

Ck_gam9 

,-bail out if is 


LDA 

Rooster_egg 

X .-get current uata 


AND 

Stat_4 

.-compare against sensor 

trigger 

BNE 

Ck_gam8a 

;if set then good compare 


LDA 

Qualifyl 

;update game qualification 


ORA 

*DQ_rooster 

;set dis-qualified bit 


STA 

Qualifyl 

,-update, system 


JMP 

Ck_gam9 

,-check next egg 


Ck_gam8a: 




LDA 

Rooster_egg* 1,X .-get current data *1 to 

see if end of egg 

CMP 

*FFh 

;test if end of table and start of game 

BNE 

Ck_gam9 

,-jump if not at end 


JSR 

Clear_games 

,-go reset all other triggers 

and game pointers 

LDA 

Game_l 

.-get system 


ORA 

*Rooster_mode .-start game mode 


STA 

Game_l 

.-update 


LDA 

*00 

.-clear all pointers 


STA 

Stat_5 

,- system 


JMP 

Idle 

,- done 



A-38 



Ck_gam9: 


Cge2: 


INC 

Egg_cnt 

;incs on any sersor trigger 

LDA 

Egg_cnt 

.-get 


CLC 




SBC 

110 

.•limit max to 10 for error 

checking 

BCC 

Cge2 

.•continue if less 


JSR 

Clear_games 

jreset all 


LDA 

too 

;clear all sensor triggers 

this pass 

STA 

Stat_4 

;ready for next pass 

of sensor t.iggers 

JHP 

Ck_bored 

;done with easter egg test 



Clear all_gam: 

LDA »00 

;clear all game enabled bits 

STA 

Game_l 

; 

; STA 

Game_2 

> 

Clear_games 

LDA 

too 

,-clea. counter 

STA 

Egg_cnt 


STA 

Stat_4 

;clear game status 

STA 

Stat_5 

.•clear game status 

STA 

Qualifyl 

.•clear all dis-qualify bits 

; STA 

Qualify2 

/clear all dis-qualify bits 

RTS 


; done 


00 = none 

01 = Loud sound 

02 = Light change brighter 

04 = Light change darker 

08 = Front tummy switch 

10 = Back switch 

20 = Feed switch 

40 ■ Tilt switch 

80 = Invert switch 

These look up tables provide the sequence of sensor triggers required 
to enter that specific game mode. .FFh is always the last byte) 


Fortune_table: 

DB 04h,04h,lOh,FFh 

Rap_table: 

DB 01h,01h,01h,01h,FFh 
Hseek_table: 

DB 04h,04h,04h,08h,FFh 
Simon_table: 

DB 08h,lOh,Olh,04h,FFh 
Burp_table: 


; lght,lght,back 
;snd,snd.snd,snd 
;light,light,light,frnt 
;frnt.back,snd,lght 


A-39 







20h,20h,20h,lOh,FFh 


.-feed, f *d,feed,back 


DB 

Name_egg: 

DB J8h,08h,08h,lOh.FFh 

Twinkle_egg: 

DB Olh.Olh.Olh,lOh.FFh 
Rooster_eu, 7 : 

DB 04h,04h,04h,lOh.FFh 


,- frnt,frnt,fmt.back 
jend,end,end,back 
; light,light,light,back 


; 

; Normal task scan of sense-s and timers. 

I 

Ck_bored: 

LDA Bored_t j me r ;ck if bored ... =0 

BNE Ck_tski .-jump if not bored 

; Currently uses 4 tables, one for each age. 


hDt 

»Bored_spliC 

;get random/sequential split 

STA 

IN_DAT 

;save for random routine 

LDX 

•Seq_bored 

;get number of sequential selections 

LDA 

»Ran_bored 

;get number of randoms 

JSR 

Rar._:. eq 

;go decide rrndom/sequential 

Bt-S 

Bored_ran 

.Random mode when carry SET 

LDX 

Bored_cour.- 

,-ave current 

INC 

Bored_count 

;if not then next table entry 

LDA 

Bored_count 

;get 

CLC 

SBC 

»Seq_bo sd-1 

;ck if > assignment 

BCC 

Bored_s_.de 

;jump if < 

LDA 

• 00 

;reset to 1 st entry of sequential 

STA 

Borcd_count 

• 

* 

Bored_t' de: 

fXA 


;current count 

Bored_ran: 

JSR 

Decid_age 

;do age calculation for table entry 

LDX 

TEMPO 

;age offset 

LDA 

Bored_Sl,X 

,-get new sound/word 

STA 

INX 

Macro_Lo 

.•save lo byte of Macro table entry 

LDA 

Bored_Sl,X 

,-get n- w sound/word 

STA 

Macro_Hi 

.-save hi byte of Macro table entry 

JMP 

Start_macro 

;go set group/table pointer for motor & speh 

Ck_tskl: 

LDA 

Task_ptr 

J 

CMP 

*01 

.-decide which 

BNE 

Ck_tsk4 

,-jump if not 

JMP 

CK.tilt 

;Ck ball witch side sense 

Ck_tsk4 : 

CMP 

• 02 

;decide which 

BNE 

Ck_tsk5 

,-jump it not 


A-40 





JMP 

Ck_invert 

;Ck ball switch inverted sense 

Ck_tsk5: 

CMP 

• 03 

;decide which 

BNE 

Ck_tsk6 

.•jump if not 

JMP 

Ck_back 

;Ck Touch switch back sensor 

Ck_tsk6: 

CMP 

104 

.■decide which 

BNE 

Ck_tsk7 

.■jump if not 

JMP 

Ck_IR 

;Ck IR input 

Ck_tsk7: 

CMP 

#05 

.•decide which 

BNE 

Ck_tsk8 

,-jump if not 

JMP 

Ck_feed 

;Ck Feed sensor 

Ck_tsk8i 

CMP 

• 06 

.-decide which 

BNE 

Ck_tsk9 

,-jump if not 

JMP 

Ck_.ight 

;Ck Light sensor 

Ck_tsk9: 

CMP 

• 07 

;decide which 

BNE 

Ck_tskl0 

.•jump if not 

JMP 

Ck_front 

;Ck Front touch switch 

Ck_tskl0: 

CMP 

• 08 

;decide which 

BNE 

Ck_tskend 

.•jump if not 

JMP 

Ck_sound 

;Ck Mic input 

Ck_tskend: 

JMP 

Idle 

;no task 


; This rtn tests for motor and speech activity and only services them 
; to allow each request to finish, and then returns to task routine. 

; As long as motor »s active, we continually reload the motor led timer 
; to keep the optical counter alive and when all activity is complete, 
the IRQ will turn led off when timer goes tr 00. 


JSR 

Task_l 

;go do speech 

JSR 

Task_2 

;go do motor 

LDA 

Stat_l 

;get system 

AND 

•Wc -d_activ 

.■Test for spch word active 

BNE 

Notrdy2 

■jump if not done 

LDA 

Stat_l 

;update 

AND 

•Say_activ 

;ck for saysent active 

BNE 

Notrdy2 


LDA 

Stat_2 

;get system 

AND 

•Motor_seek 

;ck motor request 

BNE 

Notrdy2 

.•jump if set 

LDA 

Stat_2 

;get system 

AND 

•Motor_actv 

;ck motor in motion 

BNE 

Notrdy2 


LDA 

Drift_fwd 

;motor drift counter 0 when 

BNE 

Notrdy2 



A-41 








LDA Drift_rev ; 

BNE NoCrdy2 

LDA Stat_2 ;system 

AND »Macro_actv ;ck for flag request 

BEQ Notrdy_dn ;bail if none 

JSR Ck_Macro ;decide if more chaining in process 

JMP Notrdy2 ;continue 

Notrdy_dn: 

RTS ;only leave when everyone done 

Notrdy2: 

LDA #Motor_led_rst ;get led timer reload 

STA Motor_led_timer ;how long the motor stays on 

JMP Notrdy ;loop 


Task_l: 

LDA 

AND 

BNE 

;More_spch 
LDA 
AND 
BEQ 
JSR 
JMP 

W_activ: 

LDA 

AND 

L.IE 

JSR 

EndTask_l: 
RTS 


Task_2i 

}*••••**•••* Motor Routines 

* 

; get next motor data 

Ckjnotor: 

LDA 
AND 
BEQ 
JMP 

Ck_mot2: 

LDA 
AND 
BEQ 

Next_motor: 

; LDA Drift_fwd ,-motor drift counter 0 when done 


Stat_2 jget system 

#Motor_actv ;ck motor in motion 
Ck_jnot2 ; done 

Do_motor ;not don-, so check position 

Stat_2 jget sys.em 

»Motor_seek ;ck motor request 
NMM_out ;jump if rone 


Stat_l ;get system 

*Word_activ ,-Test for spch word active 

W_activ ;jump if not done 

Stat_l ,-update 

#Say_activ ;ck for say tent active 
EndTask_l ;nothing going on. ck next task 

Do_nextsent ;continue on with saysent 
EndTask_l .-Next task 

Port_B ,-get TI req/busy line 

•TI_RTS ;get bit 

EndTas/._l ;if no speech then ck motor 
Do_spch ,-go send next byte to TI 


A-42 










: 

BNE 

NMM_OUt 


.-wait 

til 

0 

i 

LDA 

Drift_rev 

; 




; 

BNE 

NMM_out 


,-wait 

til 

0 


; Set a timer and ck counter 'motorstoped' (incremented with wheel 
count) 

; to see if it changed. When it stops changing then the motor has 
stopped. 


LDA 

BNE 

LDA 

CMP 

BEQ 

LDA 

STA 

LDA 

STA 

JMP 


motorstoped 

NMM_out 

TEMPI 

Pot_timeL 

Motor_done 

Pot_timeL 

TEMPI 

• 15 

motorstoped 

NMM_out 


;ck for 0 

.-wait till 0 
;get last motor count 
;ck if changed 

.•jump if same (motor finally stopped) 
;get current 

;reset timer ( 8 ) 

;wait another cycle 


Motor_done: 

LDA Cycle_timer ;get step timer 
BNE NMM .out .-wait til 0 

STA Drift_counter .-use as a temp register 

JSR Motor_data ;get data 


LDA #00 

STA TEMPI ireset 

LDA Mctor_lo ;get data (use for Ibyte table (DB) ) .. 

CMP #FFh ;is it table end (dont inc off end) 

BNE Motor_pause .-more 

LDA Stat_2 ;get system 

AND #Motor_ntseek ;clear seek flag 

STA Stat_2 .-update system 

NMM_out: 

JMP Endtask_2 ;seek complete 


Motor_pause: 
LDA 
BNE 
JMP 


Motor_lo ;check for pause request on this step (00) 
Morejnotor .-more 

Motor_killend ;set cycle timer and ait for next motor 


step 

I 

To initialize the motor call table, the originator loads *Which_m°tor• 
; with the pointer and calls •Decidejnotor'. 


Ck_Macro: 
JSR 
STA 
JSR 
STA 
CMP 
BNE 
LDA 
CMP 


Next_macro 

Which_m°tor 

Next_macro 

Mgroup 

• OOh 

Got_macro 

Which_motor 

• OOh 


;get data 

;save motor seek pointer 
;get data 

.-save high byte 
,-check for end of macro 
;do it if not 0 
;ck lo byte for 0 
;check for end of macro 




Got_wacro ; do it if not 0 else must be end command 


BNE 

End_macro: 

LDA Stat_2 ;get system 

AND #Nt_macro_actv ;clear request 

STA Stat_2 ;update 

; LDA »Rored_reld ;reset bored limer 

I STA Bored_timer ; 

No_macro: 

RTS ;done 

Next_macro: 

LDX *00H 

LDA (Macro_Lo,X) .-get speech/motor table request 

INC Macro_Lo ;next 

BNE Mac_dat2 ; jmp in no roll over 

INC Kacro_Hi ;rolled over so hi *1 

Mac_dat2: 

RTS 

Got_macroi 

I The speech and motor pointer table pointer from the sensor table , 
are 

; a 1-999 decimal number. The assemble converts to two 8 bit numbers and 
; this creates a one of four group of 128 byte pointers in each group. 

; We also do 2's offset for table lookup. 

CLC ; do motor 

ROL Whichjnotor ,-move hi bit to carry 

ROL Mgroup ;move carry into one of four grovo ptr 

LDA Which_motor ;offset 

STA Which_word ;set speech group pointers 
LDA Mgroup ;offset 

STA Sgroup ; 

JSR Decide_motor ;start motor routine 

JSR Say_0 ;start speech routine 

RTS {back to task master 


Morejnotor: 



LDA 

Stat_3 


;system 


ORA 

#Motor_on 

; flag 

! on mode 


STA 

Stat_3 


;update 

;m 

LDA 

Mon_.len 


.-get length of on pulse 

;m 

STA 

Motor_pulse 

;set 

timer 


LDA 

Stat_2 


,get system 


ORA 

»Motor_actv 

; set 

motor in motion 


STA 

Stat _2 


update 

Mcalc. 

_lo: 





When motor stops, if the IR detector is on the slot in the wheel, no 
; action is reeded. If passed the slot, when the next motion command 
occurs, 

; if the direction is the same as the last motion, no action is needed 
j If the direction is opposit to last motion then we decrement or 


A-44 







; increment, based on new direction, to compensate for the slot which 
; will be counted twice. 


LDA 

Motor_lo 

;get data 

CMP 

Pot_timeL 

; ck for same 

BNE 

Tst_fwdmore 

jjurop if not 0 

LDA 

Stat_2 

;get system 

AND 

»Motor_inactv ;clear activ flag 

STA 

Stat_2 

.-update system 

JMP 

Endtask_2 

;bail out 

Tst_£wdmore 



CLC 

SBC 

Pot_timeL 

;get current position 

BCC 

Go_rev 

;if borrow then dec consnand 

Go_fwd: 

LDA 

Port_C 

;get XR detector 

AND 

•Pos_sen 

; 

BEQ 

Go_fwd2 

.•bypass if sensor is over slot in wheel 

LDA 

Stat_2 

;get system 

AND 

•Motor, fwd 

;get direction motor was last headed 

BNE 

Gc_fwd2 

;if set then new direction is same as last 

DEC 

Pot_timeL2 

.•compensate for counter direction reversal 

Go_fwd2: 

LDA 

Stat_2 

;get system 

ORA 

*Motor_fwd 

,-set = motor fwd line) 

ORA 

•Motor_actv 

;set motor in motion 

STA 

Stat_2 

,-update system 

LDA 

Stat_3 

;get current status 

ORA 

•Motor_o££ 

;turn both motors off 

AND 

»Motor_fwds 

,-move motor in fwd dir 

JMP 

End_rev 

;go finish port setup •• 

Gorev: 

LDA 

Port_C 

;get IR detect.r 

AND 

•Pos_sen 

l 

BEQ 

Go_rev2 

.■bypass if sensor is over slot in wheel 

LDA 

Stat_2 

;get system 

AND 

•Motor_fwd 

;get direction motor was last headed 

BEQ 

Go_rev2 

;if clr then new direction is same as last 

INC 

Pot_timeL2 

compensate for counter direction revercal 

Go_rev2: 

LDA 

Stat_2 

;get system 

AND 

»Motor_rev 

.•clear fwd flag 

ORA 

»Motor_actv 

;set motor in motion 

STA 

Stat_2 

;update system 

LDA 

Stat_3 

;get current status 

ORA 

»Motor_o£f 

.-turn both motors off 

AND 

•Motor_revs 

,-move motor in rev dir 

End_rev: 

STA 

Stat_3 


JMP 

Endtask..2 

; done 


Do_motor: 

;((((((((((( U ((((((((((((((•((((•((H(11(((«((((I((l((I(((((((11 Id 
; motor speed control 



jmp Byp_jnotorS3 


LDA 

Stat_0 

.•system 


AND 

»Init_Mspeed 

;ck if motor 

to do speed test 

BEQ 

Byp_motorS3 only 

runs on wake 

up 

LDA 

Stat_0 

;system 


AND 

•Init_motor ;ck if 

motor to do 

speed test 

BEQ 

Byp_motorS2 ;only 

runs on wake 

up 

LDA 

Stat_0 

;system 


AND 

#Nt_Init_motor 

done 


STA 

Stat_0 

.■update 


LDA 

#00 ;reset 

opto speed counter 

STA 

Mot_opto_cnt 

.-set it 


LDA 

#Opto_spd_reld 

;get timer value for speed tei 

STA 

Mot_speed_cnt 

.-set it 



Byp_jnotorS2 : 

LDA 
BNE 

LDX 
LDA 
STA 
LDA 
CLC 
SBC 
STA 
BCS 
LDA 
STA 

LDA 
AND 
STA 

Byp_motorS3: 

;)))))))))))))))}I)))))))))))))))|))))))))))))))|))) 11)) |)) |) 1111111 


; On power up we preset Mon_len to 11 and Moff_len to 5. This prevents 
; the motor from destroying itself when the batteries are 6.4v. 

I This also gives a timed count on the speed test of -7 difference. 

I so I adjusted the table to ..-onpensate for the shift. 


Mot_speed_cnt ;get timer 

Byp_motorS3 ;do nothing if >0 

Mot_opto_cnt ;get wheel count during speed test 

Motor_speed,X ;get motor on pulse width 

Mon_len ;on time 

#Mpulse_on+l ;max cycle time on»off 

;get cmplmnt 


Mon_len 
Moff_len 
Byp_motorS3 ;jump if not neg 
#00 

Moff_len ; 


Stat_0 

*NT_Init_Mspeed 
Stat.O 


;sys tem 

.•clear motor to do speed test 
.-update 


I Compare motor position to see if at destination yet 

LDA Stat_2 ;get direction 

AND #Motor_fwd ;set=inc clr=dec 

BEQ Motor_dec ; 

;bit was set so motor in inc condition 
FCalc_lo: 

LDA Motor_lo ;get data 

CLC ;carry=0 


A-46 



SBC Pot_timeL ;table - current cap time 

BCC Motor_killfwd ;jump if resul: is negative 

JMP Endmotor .-wait till there k pulse for speed 

; Reverse direction. 

Motor_dec: ; go reverse 

LDA Pot_timeL .-destination 

CLC ,-carry* 0 

SBC Motor_lo ;table position to seek to 

BCC Motor_killrev ;jump if result negative 

JMP Endmotor jwait till there & pulse for speed 

Motor_killfwd: 

LDA Drift_counter ;ck how far we travled 

TAX ,-prep for drift table 

CLC 

SBC (20 ;ck if less than 20 steps 

BCC M_killf2 {jump if less 

LDA *Drift_long ,-long delay if >10 steps 
JMP M_killf3 ;go fini 

M_killf2: 

LDA Drift_table,X .-get brake pulse 

I LDA *Drift_short ;short delay if < 10 steps 

M_killf3: 

STA Drif t_rev ;save 

JMP Motor_killend ;go shut down motor 

; 

Motor_killrev: 


LDA 

Drif t_counter 

;ck how far we travled 

TAX 

; prep 

for drift table 

CLC 

• 

1 


SBC 

*20 ;ck if 

less than 20 steps 

BCC 

M_killr2 ;jump 

if less 

LDA 

#Drift_long .-long delay if >10 steps 

JMF 

M_killr3 ;go fini 

M_killr2: 



LDA 

Drift_table,X 

;get brake pulse 

,- LDA 

HDrift_short 

.-short delay if < 10 steps 

M_killr3: 



STA 

Drift_fwd ;save 


Motor_killend: 


LDA 

Stat_3 

;get current status 

ORA 

»Motor_of f ,- turn 

both motors off 

STA 

Stat_3 

;update 

LDA 

Stat_2 

;get system 

AND 

•Motor_inactv 

;clear activ flag 

STA 

Stat_2 

;update system 

LDA 

Which_delay ,-time 

til next read 

STA 

Cycle_timer ;reset 

it 

LDA 

«00 


STA 

TEMPI ,-used 

to test motor drift between 

JMP 

Endtask_2 ; 



; Drift table controls the magnitude of braking pulse applied. 

; If the distance just travled is less than 20 then use that number 
; to point into table and get new brake pulse length. 

Dri ft_ table: 

; DB 24,30,32.34,35,38,40,44,48,54,56 


A-47 






DB 

58,60, 

,60, 

60, 

60,60, 

60, 

60, 

60, 

60, 

60 

DB 

20,22, 

,24, 

27, 

30,32, 

34. 

36, 

38 



DB 

46,48, 

,50, 

52. 

54,56, 

58. 

.60, 

60, 

60, 

,60,60 

DB 

25,26, 

,27, 

.28. 

30,32, 

34, 

,36, 

,38, 

42, 

,<■•5 

DB 

48,51, 

,54, 

,57. 

.60,60, 

60, 

,60, 

,60, 

60, 

,60 


/ On wake up when the motor moves from positic . 0 to 134, we 
; time it and increment a counter which is used to access this table 
; and get the motor on pulse value. 


; Refer to power up preset pulse width for table pointers 
Motor_speed: ■ 

DB Mpu1s e_on,Mpu1s e_on,Mpu1s e_on 

DB Mpulse_on,Mpulse_on,Mpulse_on 
DB Mpulse_on,Mpulse_on,Mpulse_on 
DB Mpulse_on,Mpulse_on,Mpulse_on 
DB Mpu 1 s e_on, Mpu 1 s e_on, Mpu 1 s e_on 

DB Mpulse_on,Mpulse_on,Mpulse_on ;f,10 
DB Mpulse_on,Mpulse_on,Mpulse_on 
DB Mpulse_on,Mpulse_on,Mpulse_on 
DB Mpulse_on,Mpulse_on,Mpulse_on-l 

DB Mpulse_on-2,Mpulse_on-3,Mpulse_on-4 ;lb,lc 
DB Mpulse_on-5,Mpulse_on-5,Mpulse_on-6 
DB Mpulse_on-7,Mpulse_on-8,Mpulse_on-9 
DB Mpulse_on-9,Mpulse_on-9,Mpulse_on-9 
DB Mpulse_on-9,Mpulse_on-9,Mpulse_on-9 
DB Mpulse_on-9,Mpulse_on-9,Mpulse_on-9 
DB Mpulse_on-9,Mpulse_on-9,Mpulse_on-9 
DB Mpulse_on-9,Mpulse_on-9.Mpulse_on-9 
DB Mpulse_on-9,Mpulse_on-9,Mpulse_on-9 


This finds the 16 bit adrs of the table and points the motor 


Decide_motor: 


LDX 

Which_motor 

.■offset ptr 

LDA 

Mgroup 

;get current grc 

CMP 

*03 

;is it table group 4 

BEQ 

Dec_mot4 

;jump if is 

CMP 

*02 

;is it table group 3 

BEQ 

Oec_mot3 

;jump if is 

CMP 

• 01 

;is it table group 2 

BEQ 

Dec_mot2 

;jump if is 

Dec_jnotl: 

;table group 1 

LDA 

Motor_grpl,> 

; ;get lo pointer 

STA 

Motptr_lo 

.•working buffer 

INX 


;X+1 

LDA 

Motor_grpl,X ;get hi pointer 

JMP 

s 

rr 

t 

;go finish load 

Dec_mot2: 

i 



A-48 



LDA Motor_grp2,X .-get lo pointer 

STJ Motptr_lo ;working buffer 

INX ;X+l 

LDA Motor_grp2,X .-get hi pointer 

JMP Dec_mot_end ;go finish load 

Dec_jnot3: ; 

LDA Motor_grp3,X ;get lo pointer 

STA Motptr_lo .-working buffer 

INX ,-X*l 

LDA Motor_grp3,X ;get hi pointer 

JMP Dec_mot_end ;go finish load 

Dec_mot4: ; 

LDA Motor_grp4,X .-get lo pointer 

STA Motptr_lo ;working buffer 

INX jX.l 

LDA Motnr_nmi ,» .-get hi pointer 

Dec_mot_end: 

STA Motptr_hi ;working buffer 

LDA Stat_2 ;system 

ORA »Motor_seek .-flag system 

STA Stat_2 .-update 

; LDA »Motor_led_rst .-get me to led timer reload 

; STA Motor_led_timer ,-how long the motor IR led stays on 

More_multi_m: 

JSR Motor_data ,-lst time only get 1st byte (delay) 

LDA Motor_lo .-get data 

STA Which_delay ;motor delay control 

RTS ;done 

• 

; Get next motor data from table according to indirect pointer. 

; NOTE: we are now using DB statments in the motor table 
; so were back to single byte format. 

Motor_data: 

LDX DOOM 

LDA (Motptr_lo,X) ,-Get the motor data 

STA Motor_lo ;lo byte 

INC Motptr_lo ,-next 

BNE Mot_dat2 jjmp in no roll over 

INC Motptr_hi ;rolled over so hi *1 
Mot_dat2: 

RTS 


; Test motor pulse timer and alternate on i> off to keep motor speed 
I constant through battery deterioration. 


Endmotor: 



;m 

LDA 

Motor_pulse 

;ck pulse timer 

,-m 

BNE 

Endtask_2 

;jump if not done 

,-m 

LDA 

Stat_3 

;system 

;m 

AND 

»Motor_on 

;is it an power on pulse 

,-m 

BNE 

Qnotor_off 

•jump if uu pulse (set) 

,-m 

LDA 

Stat_3 

;system 

,-m 

ORA 

»Motor_on 

; flag on modi 

;m 

STA 

Stat_3 

,-update 

;m 

LDA 

Mon_len 

,-get length of on puls< 

<m 

STA 

Motor_pulse 

,-set timer 


A-49 




;mPls_fwd: 

;m LDA Stat_2 ;get system 

;m AND »Motor_£wd ;ck if set « motor fwd (inc) 
;m BEQ Pls_rev ;else go reverse 

;m LDA Stat_3 ;g#t current status 

;m ORA »Motor_of£ ;turn both motors off 

,-m AND #Motor_£wds ;move motor in fwd dir 

;m JMP Plsend ;go finish port setup 

;mPls_rev: 

;m LDA Stat_3 ;get current status 

;m ORA HMotor_off ;turn both motors off 

;m AND #Motor_revs ;move motor in rev dir 
;mPlsend: 

;m STA Stat_3 

;m JMP Endtask_2 .-done 

;mQnotor_o£ f : ,-must be on so turn off 


;m 

LDA 

Stat_3 

;system 


;m 

AND 

*Ntmot_on ;set 

to power off 

pulse 

;m 

STA 

Stat_3 

;update 


;m 

LDA 

Moff_len ;get 

length of off 

pulse 

;m 

STA 

Motor_pulse ;set 

timer 


; m 

LDA 

Stat_3 

;get current 

status 

;zn 

ORA 

#Motor_off ;turn both motors 

off 

;m 

STA 

Stat_3 

;update 


Endtask_2: 





RTS ;back to Idle rtn 


; Start motor/speech from macro table 

; Because of conflicts in diagnostic routines, this routine has been 
; changed to a subroutine. All normal sensors jump here, diag-s call 
; direct. 

Startjnacro: 


LDA 

*Bored_reld ; 

reset 

. bored timer 



STA 

Bored_timer ; 





LDA 

Macro_Lo ; 

save 

for sleepy & 

IR 

tests 

STA 

Req_macro_lo 


; 



LDA 

Macro_Hi ; 

save 

for sleepy U 

IR 

tests 

STA 

Req_macro_hi 





JSR 

Oet_macro ; 





JMP 

Idle ; 

done 





Getjnacro: 

; Motor noise is triggering sound sensor hardware, so this sets the 
; previously sound done flag, and the system will not respond to the 
; sound sensor until the sound trigger line goes low and clears prev 
done. 


LDA 

Stat_3 

;system 

ORA 

»Sound_stat ; 


STA 

Stat_3 

.•set prev dn 


;-end sound flag 


A-50 




INC Age_counter ;rolls over tc inc age 
BNE Same_age ;jump if no roll over 


I 


; AQE INCR14NT uses bit 7 to double age counter 


LDA 

Age 

;get bit 7 

- set = counter rolled over twice 

AND 

«80h 

;get 

bit 7 

BNE 

Roll_age 

;bit 7 set 

so inc age 

LDA 

Age 


ORA 

*80h 

;set bit 7 

for next counter roll over 

STA 

Age 

;update 


.TMP 

Same_age 

; done 


Roll_age: 




INC 

Age 

;just grew 

up some 

LDA 

Age 



AND 

»07h 

;clear bit 

7 

STA 

Age 



CLC 




SBC 

103 

,-make sure 

it isnt > 3 (0-3 age) 

BCC 

Same_age 

.•jump if <4 

LDA 

*03 

;max age 


STA 

Age 

; 


Same_age: 





end age 


LDA 

Stat_2 

;system 


ORA 

#Macro_actv 

;flag request 


STA 

Stat_2 

.•update 


CLC 


;do speech 


ROL 

Macro_Lo 

.•move hi bit to carry A 

get i 

ROL 

Macro_Hi 

.-move curry into one of 

four 

LDX 

Macro_Lo 

.■offset ptr 


LDA 

Macro_Hi 

;get current group pointer 

CMP 

*03 

;is it table group 4 


BEQ 

Dec _macro4 

;jump if is 


CMP 

*02 

;is it table group 3 


BEQ 

Dec_»acro3 

.-jump ii is 


CMP 

*01 

;is it table group 2 


BEQ 

Dec_macro2 

.•jump if is 


acrol: 

;table 

group 1 


LDA 

Macro_grpl,X 

;get lo pointer 


STA 

Macro_Lo 

.■working buffer 


INX 


;X*1 


LDA 

Macro_grpl,X 

;get hi pointer 



2 - s offset 


JMP 

Dec_macro2: 
LDA 
STA 
INX 
LDA 
JMP 

Dec_macro3: 
LDA 
STA 
INX 


Dec_roacro_end 


;go finish load 


Macro_grp2,X ;get lo pointer 

Macro_Lo ;vrorking buffer 

; X+l 

Macro_grp2,X jget hi pointer 

Decjnacro_end ;go finish load 

Macro_grp3,X ;get lo pointer 

Macro_Lo ;working buffer 

;X+1 





LDA Macro_grp3.X ;get hi pointer 

JMP Dec_macro_end ;go finish load 

Dec_macro4: j 

LDA Macro_grp4,X ;get lo pointer 

STA Macro_Lo ;working buffer 

INX ; X+l 

LDA Macro_grp4,X ;get hi pointer 

Dec_^iacro_end: 

STA Macro_Hi .-working buffer 

RTS 

I 

l 


! 


; This group of speech & misc routines are used for the various game 
; play modes, triggered by the easter egg. 


; REMEMBER TO CLEAR GAME ACTIVE STATUS WHEN DONE 

; NOTE: Otomah should have a delay before the word to seperate this game 
; from the speech generated by the last sensor that triggered 

; this game. 

Otomah_lo EQU »54h .-using macro 84 for 1st word 

Otomah_hi EQU *00 ,-hi byte adrs 84 = 054h 

Fortdelay_lo EQU *66h .-using macro 102 for delay between speech 

Fortdelay_hi EQU *00h ;hi byte adrs 102 * 066h 

Game_fortune: 

LDA Stat_5 .-flag used at start of game 

AND *temp_gaml ;see if prev done 

BNE Gam_fort2 .-jump if done 

LDA Stat_5 .-flag used at start of gome 

ORA »temp_gaml .-set prev done 

STA Stat_5 ;update 

LDA *Otomah_lo ,-get macro lo byte 

STA Macro_Lo ;save lo byte of Macro tabxe entry 

LDA »Otomah_hi ,-get macro hi byte 

STA Macro_Hi .-save hi byte of Macro table entry 

JSR Getjnacro ,-go start motor/speech 

JSR Notrdy ,-Do / get status for speech and motor 

LDA #GameT_reload .-reset game timer 

STA Sensor_timer ; 

Gam_fort2: 

JSR Test_all_sens ;go check all sensors 


A-52 









LDA Stat_4 ;get sensor status 

AND »Do_back ;ck if back sw req 
BNE Gam w .fort4 jump if requested 

LDA Stat_4 ,-get sensor status 

AND »Do_invi,. ; ;ck if tilt sw req 
BEQ Ganv_fort3 ,-jump if not requested 

Gam_fort2a: 

JSR Clear_all_gam ;go clear all status, cancle game 
JMP End_all_games ,-done go say 'me done* 

Gam_fort3: 

LDA Sensor_timer ;ck for no action timeout 

BEQ Gam_fort2a ;clear all if timed out 
JMP Idle ;wait for switch 

Gam_fort4: 

LDA Stat_4 ;get sensor status 

AND *Nt_do_back ;back sw req 

STA Stat_4 ,-clear req 

LDA *GameT_reload ;reset game timer 

STA Sensor_timer ; 

LDA »Fortdelay_lo ;get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

LDA VFortdel ay_hi ;get macro hi byte 

STA Macro_Hi {save hi byte of Macro table entry 

JSR Get._macro ;go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

LDA Stat_l ;get system 

ORA *Half_age {force table 1 or 2 in *Decid_age* -. 

STA Stat_l ;update 

LDA »80h {get random/sequential split 

STA IN_LAT ,-save for random routine 

LDX »0u {make sure only gives random 

LDA «10h ,• get number of random selections 

JSR n_seq ;go decide random/sequential 

111 1 11! 11! 1111 1 {• ;; { Acc holds random number 0-F 

JSR Decid_age {do age calculation for table entry 

LDX TEMPO {age offset 

LDA Fortyes_Sl.X ;get lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 
STA Req_macro_lo ;save for game 

INX { 

LDA Fortyes_Sl,X iget hi byte 

STA Macro_Hi ,-save hi byte of Macro table entry 
STA Req_macro_hi ;save for game 

LDX 100 {Offset 

Fort_Name2: 

LDA Ck_Fort_name,X ,-ck lo byte 

CMP *FFh ,-ck for end of table (note 255 cant execute) 

BEQ Fort_Name_dn ,-done if is 

CMP Macro_Lo ,-ck against last speech request 


A-53 



Not_Port2 ;jump if not 
;to hi byte 

Ck_Fort_name, X ,-ck hi byte 

Macro_Hi jck against last speech request 

Not_Fort3 ,-jump if not 

Say_Fortname ;speak it 


Fort_Name2 {loop til done 
Say_Fortnamoi 

LDA Name {current setting for table offs- 

CLC 

ROL A {2 ' s ’ ——if 

TAX 

LDA Name_table.X .-get le byte 

STA Macro_Lo .-save ic byte of Macro table entry 
INX 

LDA Name_table. X ge- 

STA Macro_Hi ; save be of Macro table entry 

JSR Get_macro ;gc star or speech 

JSR Notrdy ;Do get status for speech and motor 

LDA Req_macrc_lo .-recover for game 

STA Macro_Lo ,-set game speech 

LDA Req_macrc_hi ;recover for game 

STA Macro_Hi .-set game speech 

Fort_Name_dr.: 

JMP Start_macro ,-go set group.' table pointer for motor A speh 
{ compare macro to see if we are going to call Furby’s name first. 
Ck_Fort_name: 


DW 

69 



DW 

77 



DB 

FFh.FFh 

{FF FF 

is table terminator 


Game_Rap: 


JMP 

Do_rap 

{1st time thru 

Grap_2: 

JSR 

Simon_timer {decrement bored timer 

LDA 

Bored_timet system elapsed time 

BEQ 

Rap_over {jump 

if 0 

JSR 

Test_all_sens 

,-go check all sensors 

LDA 

Stat_4 

,-get sensors 

BEQ 

Grap_2 

{loop if none 

AND 

*Do_snd 

,-ck for mic 

BNE 

Do_rap 

;any other sensor stops game 

R*P_over : 

JSR 

Clear_all_gam 

,-go clear all status, cancle 

JMP 

End_a1l_games 

{done go say "me done* 


BNE 

INX 

LDA 

CMP 

BNE 

JMP 

Not_Fort2: 
INX 

Not_Fort3: 
INX 
JMP 


A-54 




Do_rapi 

LDA 

STA 

LDA 

STA 

LDA 

STA 

LDX 

LDA 

JSR 

LDA 

AND 

CLC 

ROL 

TAX 

LDA 

STA 

INX 

LDA 

STA 

JSR 

JSR 

JMP 


•00 .-clear all senior flags 

Stat_4 ; 

»GameT_reload ;get reload 

Bor#d_timer ;reset 

• 80h 
IN_DAT 
•OOh 
•lOh 
Ran_seq 
TEMPI 

• 03h 


,-get randam/sequential split 

.-save for random routine 
.-Bake sure only gives random 
;get number of random selections 
;go get random selection 
;get decision 
;got 1 of 4 decision 


;2's offsett 


Rapsong.X ;get macro lo byte 

Macro_Lo ;save lo byte of Macro table entry 


Rapsong.X 

Macro_Hi 

Getjnacro 

Notrdy 

Grap_2 


jget macro hi byte 

;save hi byte of Macro table entry 
;go start motor/speech 

;Do / get status for speech and motor 
; loop 


Rapsong: 

DW 395 .-macro RAP song pointer 

DW 396 

DW 407 ; 

DW 416 


! 


HidePeek_lo EQU 
HidePeek_hi EQU 

•DBh 
• Olh 

.-using macro 475 for startp 'hide me" 
;hi byte adrs 475 = lDBh 

spch 

Hidsklost_lo 

Hidsklost_hi 

EQU 

EQU 

»D8h .-using macro 472 for "nana nana 
•Olh ;hi byte adrs 472 = lD8h 

nana 

Hidskwon_lo EQU 
Hidskwon_hi EQU 

»B7h 

•Olh 

;using macro 439 for 'whopee 
;hi byte adrs 439 = lB7h 



Game_hideseek: 


LDA 

• 80 

,-set timer for 1 min (80 * .742) 

STA 

HCEL_LO 

;use temp ram for timer 

LDA 

CLC 

Name 

;current setting for table offset 

ROL 

TAX 

A 

; 2 1 ■ comp 

LDA 

Name_table.X 

.-get lo byte 

STA 

Macro_Lo 

,- save lo byte of Macro table entry 

INX 

; 

LDA 

Name_table,X 

.-get hi byte 

STA 

Macro_Hi 

,- save hi byte of Macro table entry 

JSR 

Get_jnacro 

;go start motor/speech 

JSR 

Notrdy 

;Do / get status for speech and motor 




LDA #HidePeak_lo ;got macro lo byta 

STA MacroJLo ;*ave lo byta of Macro table entry 

LDA #HidePeek_hi .-get macro hi byte 

STA Macro_Hi nave hi byte of Macro table entry 

JSR Oat_raacro ; go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

0 am_hide 2 : 

JSR HideS_timex ;go dec bored timer without Idle 

JSR Test_all_se.i» ;go check all sensors 

LDA Stat_4 ;get all switches 

AND #Do_invert ;ck if inverted 

BEQ Gam_hide2a ;jump if not inverted 
; JMP Gam_hide9 .-abort game and call game lost speech 

JSR Clear_all_gam ;go clear all status, cancle games 

JMP End_all_games .-done go say "me done* 

Ganv_hide2a: 

LDA HCEL_LO ;ck for no action timeout 

BNE Gam_hide2 .-wait till done to start game 

LDA #00 .-clear all sensor flags 

STA Stat_4 

LDA #242 .-set timer for 3 min (242 * .742) 

STA HCEL_LO ;reset 

Gam_hide4 
LDA 
STA 
LDX 
LDA 
JSR 
AND 
TAX 
LDA 
STA 

Gam_hide5: 


JSR 

Test_all_sens .-go check all sensors 

LDA 

Stat_4 

;get sensor status 

AND 

#Do_tilt 

,-ck if tilt sw req 

BNE 

Gam_hide8 

,-jump if requested 

JSR 

HideS_timer 

;go dec bored timer A sensor_timer 

LDA 

HCEL.LO 

,-get elapsed 

BEQ 

Ganv_hide9 

.-game over 

LDA 

Sensor_timer 

.-get randcm speech timer 

BNE 

Gam_hide5 

,-loop till done 

SAV RANDOM WORDS TC 

i HELP FIND HIM 

LDA 

«80h 

,-get random/sequential split 

STA 

IN_DAT 

;save for random routine 

LDX 

•OOh 

.-make sure only gives random 

LDA 

#10h 

.-get number of random selections 

JSR 

Rai._seq 

;go get random selection 

LDA 

TEMPI 

;get decision 


#80h .-get random/sequential split 

IN_rAT .-save for random routine 

#00 .-make sure only gives random 

#10h .-get number of random selections {0-0f> 

Ran_seq ;go decide random 

•OF .and nnot >16 


Hide_time.X .-get random timer for speech 
Sensor timer ; 


A-56 



CLC 

ROL A ;2's offsett 

TAX 

LDA Hideseek.X ;get macro lo byte 

STA Macro_Lo jaave lo byte of Macro table entry 

INX 

uDA Hideseek.X ;get macro hi byte 

STA Macro_Hi ;aave hi byte of Macro table entry 

JSR Getjnacro ;go atart motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

JMP Gam_hide4 

Gam_hide8: ;GAME WON SPEECH 

JSR Clear_all_gam ;go clear all status, cancel game 

LDA #Hidskwon_lo ,-get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

LDA #Hidskwon_hi .get macro hi byte 

STA Macro_H.i ; save hi byte of Macro table entry 

JMP Start_macro ;go set group/table pointer for motor & spch 

Gam_hide9: .GAME LOST SPEECH 

JSR Clear_all_gam ;go clear all status, cancel game 
LDA #03 ;number of times to call ’nana" 

STA HCEL_HI 

Gant_hide9a: 

LDA #Hidsklost_lo ;get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

LDA #Hidsklost_hi .-get macro hi byte 

STA Macro_Hi ,-save hi byte of Macro table entry 

JSR Cet_macro ,-go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

DEC HCEL_HI ;loop 

BNE Gam_hide9a ; 

JMP Idle ,-done 

HideS_timer: 

LDA Milisec_flag ;if >0 then 742 mill seconds have passed 

BEQ HideS_tdn ;bypass if 0 

LDA #00 ;clear it 

STA Milisec_flag ;reset 

LDA HCEL_LO ;get current timer * 742mSec sec 

BEQ HideS_t2 jdo nothing if 0 

DEC HCEL_LO ;-l 

HideS_t2: 

LDA Sensor_timer ;get current timer * 742mSec sec 

BEQ HideS_tdn jdo nothing if 0 

DEC Sensor_timer ;-l 

HideS_tdn: 

RTS ; 


Hide_time: ;for random time between calls when hiding 

DB 6 ;5 sec (x * .742) 

DB 7 

DB 8 

DB 9 

DB 10 


A-57 



DB 11 
DB 12 
DB 13 
DB 14 
DB 15 
DB 16 
DB 17 
DB 18 
DB 19 

DB 20 ;15 sec 

DB 10 


Hidsseak: 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
DW 
EW 


;table of sound when Furby is hiding t waiting to be found 

437 

438 

95 

96 

97 

451 

452 
437 

437 

438 

95 

96 

97 

451 

452 
438 


; Furby - Says ;;;; 

; Four byte of ram allocated for game and 5th byte is game counter. 

; On start, get 4 random nu m bers and set the game counter to 4 
sequences. 

I Furby plays the 4 sounds and waits for the sensors to respond. If its 
i wrong, then start over at beginning and if it is right then say 
whoppee 

1 and increment to 5 sounds,,,,,, until all 16. If 16 correct then get 
j 4 new random numbers and continue with 16 sequences. 

; The invert switch bails out of the game. 


simondelay_lo 

EQU 

«66h 

.-using macro 102 for delay between speech 

Simondelay_hi 

EQU 

• 0 Oh 

jhi byte adrs 102 = 066h 

Listen_jne_lo 

EQU 

DAh 

;on start up he say “Listen Me’ 

Listen_jme_hi 

EQU 

Olh 

.■macro 474 = IDAh 

Simon_fmt_lo 

•tickle" 

EQU 

•AEh 

.■using macro 430 for simon chooses 

Simon_frnt_hi 

EQU 

lOlh 

;hi byte adrs 430 = 1 AEh 

Simon_back_lo 

EQU 

*AFh 

.-using mcro 431 for simon chooses "pet 

Simon_back_hi 

EQU 

tOlh 

;hi byte adrs 431 = lAFh 


A-58 




Simon_snd_lo 

Siraon_snd_hi 


EQU IBOh ;using macro 432 for simon chooses 'sound 
EQU iOlh ;hi byte adrB 432 « IBOh 


Simon_lght_lo EQU »Blh .-using macro 433 for simon chooses “light 

Simon_lght_hi EQU #01h ;hi byte adrs 433 = lBlh 


Skeyfrnt_lo EQU 
Skeyfrnt_hi EQU 


•OFh ;using macro 15 for user feed back 
» 00 h .-use for 'front' 


Skeybck_lo EQU 
Skeybck_hi EQU 


»B2h ;using macro 434 for user feed back 
»01h .-use for 'back' 


Skeylght_lo EQU 
Skeylght_hi EQU 


»B3h .-using macro 435 for user feed back 
»01h ,-use for 'light' 


Skeysnd_lo EQU 
Skeysnd_hi EQU 


*B4h .-using macro 4 36 for user feed back 
»01h ,-use for 'sound' 


Simonlost_lo EQU #D8h ; lost game is macro 472 

Simonlost_hi EQU »01 


; Available ram not in use during this game 

;HCEL_LO Counter of which sensor were on 

;HCEL_HI Random play ram 1 

; BIT_CT “* - • Random play ram 2 

;Task_ptr Random play ram 3 

;Bored_count Random play ram 4 

.-TEMP5 Random save ram 1 ( was TOA_INT ) TEMP5 used in 

*RAN_SEQ’ 

;Temp_ID2 Random save ram 2 

,-Temp_ID Random save ram 3 

;Learn_temp Random save ram 4 


Game_simon: 

; do delay before start of game 


LDA »Simondelay_lo ;get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

LDA »Simondelay_hi ,-get macro lo byte 

STA Macro_Hi ,-save hi byte of Macro table entry 

JSR Oetjnacro ;go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 


LDA Name jcurrent setting for table offset 

CLC 

ROL A ;2's comp 

TAX 

LDA Name_table,X jget lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

I NX 

LDA Name_table,X ,-get hi byte 

STA Macro_Hi ,-save hi byte of Macro table entry 

JSR Getjaacro ;go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 


A-59 



LDA »Listen_me_lo ;get macro lo byta 

STA MacroJLo .-save lo byta of Macro tabla antry 

LDA #Listen_me_hi ;gat macro lo byta 

STA Macro_Hi ;aave hi byte of Macro tabla antry 

JSR Get_macro ;go start motor/apeach 

JSR Notrdy ;Do / get atatua for apaach and motor 

LDA «Simondelay_lo ;gat macro lo byta 

STA Macro_Lo ;save lo byte of Macro tabla antry 

LDA #Simondelay_hi ;get macro lo byta 

STA Macro_Hi ;save hi byte of Macro table entry 

JSR Oet_macro ;go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

LDA #04 ;number of sensors in 1st game 

GS_rentr: 

STA HCEL_LO ,-load counter 

STA IN_DAT ;save for later use 

JSR Simon_random ;go load 2 grps of 4 ram locations 

Simonl: 

LDA HCEL_HI ;get 1st ram location 

JSR Simon_sensor ,-go to speech 

JSR Rotate_play ;get next 2 bits for sensor choice 
DEC IN_DAT ;-1 (number of sensors played this game) 

BNE Simonl ;loop til all speech done 

JSR Recover_play ;reset random rams 

LDA #GameT_reload ;reset timer 

STA Bored_timer ;set 

LDA #00 

STA Stat_4 ;clear all sensors 

LDA HCEL_LO ;get counter •. 

STA IN_DAT ;reset it 

Simon2: 

JSR Test_all_sens ;go check all sensors 

LDA Stat_4 ;get em 

BNE Simon3 ;jump if any triggered 

JSR Simon_timer ;go check for timeout 

LDA Bored_timer ; 

BNE Simon2 ;loop if not 

JMP Simon_over .'bailout if 0 

Simon3: 

; do to lack of time I resort to brute force ... YUK.... 

LDA Stat_4 ,-get which sensor 

CMP #08h {front sw 

BNE Simon3a {jump if not 

LDA #Skeyfmt_lo {get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 
LDA #skeyfrnt_hi .-get macro hi byte 

JMP Simon3dn ;go speak it 

Simon3as 

CMP #10h (back sw 

BNE Simon3b {jump if not 

LDA #Skeybck_lo {get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 
LDA #Skeybck_hi {get macro hi byte 
JMP Simon3dn {go speak it 

Simon3b: 

CMP #04h {light 


A-60 



BNE 

Simon3c ; jump if not 


LDA 

•Skeylght_lo ,get macro lo byte 


STA 

Macro_Lo .-save lo byte of Macro table entry 


LDA 

*Skeylght_hi ;get macro hi byte 


JMP 

Simon3dn ;go speak it 


Simon3ct 

CMP 

#01h ;sound 


BNE 

Simon3d {jump if not 


LDA 

»Skeysnd_lo ;get macro lo byte 


STA 

Macro_Lo ;save lo byte of Macro table entry 


LDA 

*Skeysnd_hi ;get macro hi byte 


JMP 

Simon3dn ;go speak it 


Simon3d: 

CMP 

#Do_invert ;? 


BEQ 

Simon3e {jump if is invert 


LDA 

• 00 { 


STA 

Stat_4 {clear sensor flags 


JMP 

Simon2 {ignore all other sensors loop up 


Simon3e: 

JMP 

Simon_over {bail out if is 


Simon3dn: 

STA 

Macro_Hi .-save for macro call 


JSR 

Get_macro ;go start motor/speech 


JSR 

Notrdy {Do / get status for speech and motor 

LDA HCEL_HI ,-get 1st ram location 


AND 

*03 ;bit Oil 


TAX 

;point co interpret table entry 


LDA 

Simon_convert.X ;translat game to sensors 


CMP 

Stat_4 {ck for correct sensor 


BNE 

Simon_lost ,-done if wrong 


LDA 

*00 


STA 

Stat_4 ;clear all sensors 


JSR 

Rotate_play ;get next 2 bits for sensor choice 


DEC 

IN_DAT {-1 (number of sensors played this game) 


BNE 

Simon2 {loop til all sensors done 


JSR 

Simon_won {game won 


JSR 

Recover_play ;reset random rams 


INC 

HCEL_LO ,• increase number of sensors in next game 


CLC 

LDA 

HCEL_LO ,• get current 


STA 

IN_DAT {reset game sensor counter 


SBC 

*16 :ck if max number of sensors 


BCS 

Simon4 ; 


JMP 

Simon 1 {loop up 


Simon4: 

LDA 

116 ,-set to max 


JMP 

QS_rentr ;start next round 


till;; Simon subroutines 


Simon_lost: 

{ LDA 

Stat_4 ,-ck for invert sw to end game 


; CMP 

»Do_invert ;? 


1 BEQ 

Simon_over {bail out if is 


LDA 

tSimonlost_lo ,-get macro lo byte 

A-61 



STA 

LDA 

STA 

JSR; 

JSR 

JMP 


Macro_Lo .-save lo byte of Macro Cable entry 
tSimonlost_hi jget macro hi byte 
Macro_Hi ;save hi byte of Macro table entry 
Oetjiacro ;go start motor/speech 

Notrdy * Do / get status for speech and motor 

Game_simon .-start at beginning 


Simon_won: 

LDA HCEL_LO ,-game number (how many steps) 

CLC 

ROL A ;2's offsett for speech win table 

TAX 

LDA Simon_won_tbl X ,-get lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 
INX 

LDA Simon_won_tbl.X ;get hi byte 

STA Macro_Hi ;save hi byte of Macro table entry 
JSR Get_macro ;go start motor/speech 

JSR Notrdy ,-Do / get status for speech and motor 

RTS 


Rotate_play: 


ROR 

Bored_count 

;shf 1 to carry 






ROR 

Task_ptr 

,-carry 4 shfl to carry 






ROR 

BIT_CT 

;carry 4 shfl to 

carry 





ROR 

HCEL_HI 

;carry 4 shfl to 

carry 

throw 

away 

lo 

bit 

ROR 

Bored_count 

;shfl to carry 






ROR 

Task_ptr 

;carry 4 shfl to carry 






ROR 

BIT_CT 

;carry 4 shfl to 

carry 





ROR 

HCEL_HI 

;carry 4 shfl to 

carry 

throw 

away 

lo 

bit 

RTS 


! 







Recover_play: 

LDA TEMP5 ,-recover random data 

STA HCEL_HI 

LDA Temp_ID2 

STA BIT_CT 

LDA Temp_ID 

STA Task_ptr 

LDA Learn_temp 

STA Bored_count 

RTS 


I 

Simon_over: 

JSR Clear_all_gam ,-go clear all status, cancel game 

LDA »00 

STA Task_ptr ,- reset for normal use 

JMP End_all_games .-done go say "me done* 


Simon_sensori 

AND »03h ;get senosr 

CLC 

RCL A ;2b offset 

TAX ;offset 

LDA Psimon_table,X ; 

STA Macro_Lo ; 

INX ; 

LDA Psimon_table,X ; 

STA Macro_Hi ,-save hi byte of Macro table entry 



JSR Get_jnacro ;go stare motor/speech 

JSR Notrdy ;Do / gat status for speech and motor 

RTS 

; 

Simon_delay: 

LDA #Simondelay_lo ,-get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 
LDA #Simondelay_hi ,-get macro hi byte 

STA Macro_Hi ;save hi byte of Macro table entry 
JSR Get_macro ;go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

RTS i 

S imon_ random : 

JSR Random 

STA TEMP5 

STA HCEL_HX 

JSR Random 

STA Temp_ID2 . 

STA BIT_CT 

JSR Random 

STA Temp_ID 

STA Task_ptr 

JSR Random 

STA Learn_temp 

STA Bored_count 

RTS 

Simon_t inter: 

LDA Milisec_flag ;if >0 then 742 nsili seconds have passed 

BEQ Simon_tdn ;bypass if 0 

LDA #00 ;clear it 

STA Milisec_f lag .-reset 

LDA Bored_timer ;get current timer • 742mSec sec 
BEQ Simon_tdn ;do nothing if 0 

DEC Bored_timer ;-l 

Simon_tdn: 

RTS 


Psimon_table: 


DW 

430 

,-front switch 

( 00 ) 

DW 

431 

,-back switch 

( 01 ) 

EW 

433 

;sound sensor 

( 11 ) (It U snd swaped in table) 

DW 

432 

;light sensor 

( 10 ) 

• 

Sixnon__convert: 

.•converts game 

table to sensor table 

DB 

08h 

;front sw 


DB 

lOh 

,-back sw 


DB 

04h 

;light 


DB 

Olh 

;sound 


; 

Sixnon_won_tbl s 

;for each game 

won there is a macro (or re-use them) 

DW 

72 

,- 0 (not used, , 

,,, place holder) 

DW 

72 

j 1 (not used,, 

,, place holder) 

DW 

72 

,- 2 (not used, , 

, ,, place holder) 

DW 

72 

j 3 (not used,, 

, ,, place holder) 

DW 

72 

; 4 (1st game 

has 4 sensors, each game adds one) 

DW 

72 

J 5 



,-get random number (0-255) 
.-get random number (0-255) 
,-get random number (0-255) 
;get random number (0-255) 


A-63 



DW 72 i 6 

DW 72 ; 7 

DW 3B0 ; 8 

DW 380 ; 9 

DW 380 ; 10 

DW 380 ; 11 

DW 471 j 12 

DW 471 ; 13 

EW 471 ; 14 

DW 471 ; 15 

DW 439 ,- 16 


End_all_games.- ,-when any game ends, they jump here and say done 

Saygamdn_lo EQU »D9h .-using macro 473 for game over speech 
Saygamdn_hi EQU «01h ; 


LDA #Bored_reld ;reset bored timer 
STA Bored_timer ; 

LDA #Saygamdn_lo ,-get macro lo byte 

STA Macro_Lo ;save lo byte of Hacro table entry 

LDA *Saygamdn_hi .get macro hi byte 

STA Macro_Hi ,-save hi byte of Macro table entry 

JKP Start_macro ;go set group/table pointer for motor & spch 


;Burp attack egg 


Burpsnd_lo EQU 
Burpsnd_hi EQU 


*D6h ,-using macro 470 for user feed back 
llOlh ; 


Game_Burp: 


JSK 

Clear_all_gam 


LDA 

»Bored_reld 

,- reset bored timer 


STA 

Bored_timer 



LDA 

»Burpsnd_lo 

;get macro lo byte 


STA 

Macro_Lo 

;save lo byte of Macro table 

entry 

LDA 

»Burpsnd_hi 

,-get macro hi byte 


STA 

Macro_Hi 

,- save hi byte of Macro table 

entry 

JMP 

Start_macro 

•go set group/table pointer : 

Eor motor i> spch 


! 

.. 

,-easter egg says NAME 
Game_name: 


A-64 







JSR Clear_al l_gam 


LEA #Bored_reld reset bored timer 
STA Bor*jd_t imer ; 

LDA 
CLC 
ROL 
TAX 
LDA 
STA 
INX 
LDA 
STA 
JMP 
i 


;Twinkle song egg 

; When song i >lete, if both front and back switches are pressed 
; we goto dee p. That means only the invert can wake us up, not 
; the invert -tch. 


Twinklsnd_lo EQU #D5h ;using macro 469 

Twinklsnd_hi EQU tiOlh ; 

Sle.>p_lo EQU »A6h .-using macro 166 (before going to sleepl 

Sleep_hi EQU ItOOh ; 

Game.twinkle: 

JSR Clear_all_gam 

LDA *03 ;song counter 

STA HCEL_LO ; set 

Gtwnk: 

DEC HCEL_LO ;-l 

LDA Stat_2 ;Get system clear done flags 

AND »Not_tch_ft ;clear previously inverted flag 
AND #Not_tch_bk ;clear previously inverted flag 
STA Stat_2 ,-update 

LDA »Bor#d_reld ; reset bored ti.aer 

STA Bored_timer ; 

LDA #Twinklsnd_lo ;get macro lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

LDA »Twinklsnd_hi ;get macro hi byte 

STA Macro.Hi ;save hi byte of Macro table entry 

JSR Get_macro ;go start motor/speech 

JSR Notrdy ;Do / get status for speech and motor 

JSR Test_all_sens ;get status 

JSR Test_all_sens ;get status 2nd time for debounce 

LDA Stat_4 .switch status 

AND *18h ;isolate front and back switches 

CMP *16h 

BEQ Start_sleep ;if both switches pressed, goto sleep 
LDA HCEL_LO .-get song loop counter 

BNE Gtwnk ;loop 


Name ;current setting for table offset 

A ; 2'b comp 

Name_table,X ;get lo byte 

Macro_Lo ;save Jo byte of Macro table entry 
Name_table,X ;get hi byte 

Macro_Hi ;save hi byte of Macro table entry 
Start_macro ;go set group/table pointer for motor 4 spch 


A-65 




JMP Idle 


;not so egg complete 


Start_sleep: 

LDA »Sleop_lo 
STA Macro_Lo 
LDA *Sleep_hi 
STA Macro_Hi 
JSR Get_macro 
JSR Notrdy 
LDA #llh 
STA Deep_sleep 
JMP QoToSleep 


;Rooster loves you egg 

Roostersnd_lo EQU »D4h .-using macro 468 

Roostersnd_hi EQU #01h 


Game_rooster: 

JSR Clear_all_gam 

LDA «Bored_reld ;reset bored timer 

STA Bored_timer ; 

LDA #Roostersnd_lc .-get macro lo byte 

STA Macro_Lc ;save lo byte of Macro table entry 

LDA #Roostersnd_hi .get macro hi byte 

STA Macro_Hi .-save hi byte of Macro table entry 

JMP Start_ma^ro ;go set group/table pointer for motor & spch 


.-get macro lo byte 

,-save lo byte of Macro table entry 

; get macro hi byte 

; save hi byte of Macro table entry 
; go start motor/speech 

;Do / get status for speech and motor 
,-set deep sleep mode 

;nity-night 


; If a game requires sensor input without triggering the normal 
; sensor cycle for speech, then this rtn will check all sensors for 
; change and tht calling game can check for the appropriate trigger 


DO NOT USE I.R. SENSOR SINCE ITS RAM LOCATIONS ARE USED IN GAMES 


Test_all_sens: 

JSR Get_back 
JSR Get_Tilt 
JSR Get_invert 
JSR Get_front 
JSR Get_light 
JSR Get_sound 
JSR Get_feed 
RTS 


back to game 


; ......... * . 

;*•*** Side 'll switch triggers when ball falls off center and I/O goes 


A-66 









hi. 


CK_tilt: ;tilt sensor 

JSR Oot_Tilt ;go ck for sensor trigger 

BCS Norraal_tilt ;go fini normal spch/motor table 

JMP Idle ;no request 

Oet_Tilt: ;this is the subroutine entry point. 

LDA Port_D ;get I/O 

AND #Ball_side ;ck if we tilted on side 
BNE Do_bside ;jump if hi 

LDA Stat_2 ;Get system 

AND »Not_bside ;clear previously on side flag 
STA Stat_2 ;update 

Side_out: 

CLC ;clear indicates no request 

RTS 

Do_bside: 

LDA Stat_2 .-system 

AND #Bside_dn ;ck if previously done 

BNE Side_out .-jump if was 

LDA Stat_2 ;get system 

ORA #Bside_dn ;flag set .only execute once 

STA Stat_2 ;update system 

LDA 
ORA 
STA 
SEC 
RTS 

Normal_tilt: ;Idie rtn jumps here to complete speech/motor table 


also for testing, when tilt is triggered, it resets all 
; easter egg routines to allow easy entry of eggs. 


JSR Clear_all_gam 


JSR Life ;go tweek health/hungry counters 

BCS Mcre_tilt ;if clear then do sensor else bail 

JMP Idle ;done 

More_tilt: 


LDA »Tilt_split ;get random/sequential split 
STA IN_DAT ;save for random routine 

LDX »Seq_tilt ;get how many sequential selections 
LDA »Ran_tilt ;get number of random elections 
JSR Ran_seq ;go decide random/sequential 


Stat_4 ;game mode status 

»Do_tilt ;flag sensor is active 
Stat_4 ;update 

.-carry set indicates sensor is triggered 


A-67 





LDX Sensor_timer 


;get current for training subroutine 


BCS Tilt_ran ;Random mode when carry SET 

LDA Sensor_timer ;ck if timed out since last action 

BEQ Tilt_reset ;yep . 

LDA Tilt_count ;save current 

STA BIT_CT ;temp store 

INC Tilt_count ;if not then next table entry 

LDA Tilt_count ;get 

CLC 

SBC #Seq_tilt-l ;ck if > assignment 

BCC Tilt_side {jump if < 

LDA »Seq_tilt-l ;dont inc off end 
STA Tilt_COUnt ; 

JMP Tilt .side ;do it 

Tilt_reset: 

LDA *00 ;reset to 1st entry of sequential 

STA BIT_CT ;temp store 

STA Tilt_count ; 

Tilt_side: 

LDA »Global_time ;get timer reset value 

STA Sensor_timer ;reset it 

LDA BIT_CT ;Arc holds value for subroutine 

Tilt_ran: 

STA IN_DAT .-save decision 

LDA *Tilt_ID .-which ram location for learned word count 
(offset) 

JSR Start_learn .-go record training info 
LDA IN DAT ;get decision 

JSR Decid_age ;do age calculation for table entry 

LDX TEMPO ;age offset 

LDA Tilt_Sl,X .-get lo byte 

STA Macro_Lo .-save lo byte of Macro table entry 
I NX 

LDA Tilt_Sl,X .get hi byte 

STA Macro_Hi ,-save hi byte of Macro table entry 

JMP Start_macro ;go set group/table pointer for motor h spch 


...... inverted ball switch triggers when ball touches top and I/O goes 

hi. 

Ck_inverts ; upside down sense 

JSR Get_invert ;go ck for sensor trigger 

BCS Normal_invert ;go fini normal spch/motor table 

JMP Idle ;no request 

Get_invert: ;this is the subroutine entry point. 


A-68 








LDA Port_D ;get I/O 

AND »Ball_invert ;ck if we upside down 

BNE Do_binvrt ;jump if inverted (hi) 


LDA 

AND 

STA 

Invrt_out: 
CLC 
RTS 


Stat_2 ;Oet system 

•Not_binvrt ;clear previously inverted flag 
Stat_2 ;update 

.•clear carry indicates no sensor change 


Do_binvrt: 

LDA 

AND 

BNE 

LDA 

ORA 

STA 


Stat_2 

»Binvrt_dn 

Invrt_out 

Stat_2 

#Binvrt_dn 

Stat_2 


;get system 
;ck if prev done 
.•jump if was 

;get system 

.•flag set .only execute once 
.•update system 


LDA 

ORA 

STA 


Stat_4 

»Do_invert .-flag 
Stat_4 


.game mode status 
sensor is active 
;update 


SEC ;set indicates sensor is triggered 

RTS 


Normal_invert: 


JSR Life ;go tweek health/hungry counters 

BCS More_invert ;if clear then do sensor else bail 
JMP Idle ;done 

More_invert: 

;**■****•••••••••••••••••••••*••••••*••••*••*•*•••••*. 


LDA 

»Invert_split 

;get random/sequential split 

STA 

IN_DAT 


.■save for random routine 

LDX 

•Seq_invert 

.get 

how many sequential selections 

LDA 

»Ran_invert 

.get 

number of random elections 

JSR 

Ran_seq 


;go decide random/sequential 

LDX 

Sensor_timer 


;get current for draining subroutine 

BCS 

Invrt_md 

.•Random mode when carry SET 

LDA 

Sensor_timer 

,-ck if timed out since last action 

B x.Q 

Invrt_reset 

;y«p 


LDA 

Invrt_count 

.-save current 

STA 

BIT_CT 


,-temp store 

INC 

Invrt_count 

;if not then next table entry 

LDA 

Invrt_count 

;get 






CLC 

SBC »Seq_invert-l ,-ck i£ > assignment 

BCC Invrt_set ,-jump if < 

LDA »Seq_invert-l ;dont inc off end 

STA lnvrt_count ; 

JMP Invrt_set ;do it 

Invrt_r#set: 

LDA *00 ;reset to 1st entry of sequential 

STA BIT_CT ;temp store 

STA Invrt_count ; 

Invrt_set: 

LDA tOlobal_time .-get timer reset value 

STA Sensor_timer ;reset it 

LDA BIT_CT .-speech to call 

Invrt_rnd: 

STA IN_DAT .-save decision 

LDA »lnvert_ID ,-which ram location for learned word count 
(offset) 

JSR Start_learn .-go record training info 

LDA IN_DAT ;get back word to speak 

JSR Decid_age ;do age calculation for table entry 
LDX TEMPO ;age offset 

LDA Invrt_Sl,X ,-get lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

INX ; 

LDA Invrt_Sl,X .-get hi byte 

STA Macro_Hi ;save hi byte of Macro table entry 

JMP Start_macro ;go set group/table pointer for motor & speh 


Ck_back: ;Back touch sensor 

JSR Get_bac>'. ;go ck for sense- trigger 

BCS Normal_back ;go fini normal speh/motor table 

JMP Idle ;no request 

Get_back: ;this is the subroutine entry point. 

LDA Port_C .-get I/O 

AND #Touch_bck ;ck if Kirby's back is rubbed 
BEQ Do_tch_bk {jump if lo 

LDA Stat_2 .-Get system 

AND »Not_tch_bk {clear previously inverted flag 
STA. Stat_2 {update 

Tchl_out: 

CLC {dear carry for no sensor request 

RTS { 

Do_tch_bk: 

LDA Stat_2 ;get system 

AND *Tchbk_dn ;ck if prev done 

BNE Tchl_out {jump if was 


A-70 








LDA 

Stat_2 

;get system 

ORA 

#Tchbk_dn 

;flag set .only execute once 

STA 

Stat_2 

.-update system 

LDA 

Stat_4 

,-game mode status 

ORA 

*Do_back 

,-flag sensor is active 

STA 

SEC 

RTS 

Stat_4 

.-update 

,-set indicator sensor is triggered 

s 


Normal_back: ;enter here to complere sensor speech/motor 


JSR Life 
aCS More_back 
JMP Idle 
More_back: 


; go tw». k health/hungry counters 
;if clear then do sensor else bail 
; done 


LDA 

»Back_split ;get 

random/sequential split 

STA 

IN_DAT 

;sa for random routine 

LDX 

»Seq_back .-get 

how many sequential selections 

LDA 

#Ran_back .-get 

number of random elections 

JSR 

Ran_seq 

,-go decide random/sequential 

LDX 

Sensor_timer 

.-get current for training subroutine 

BCS 

Back_rnd ,- Random mode when carry SET 

LDA 

Sensor_timer 

;ck if timed out since last action 

BEQ 

Back_reset ;yep 


LDA 

Tchbck_count 

;save current 

STA 

BIT_CT 

{temp store 

INC 

Tchbck_count 

;if not then next table entry 

LDA 

Tchbck_count 

.-get 

CLC 



SBC 

»Seq_back-l ,-ck 

if > assignment 

BCC 

Back_set ;jump if < 

LDA 

#Seq_back-l ;dont inc off end 

STA 

Tchbck_count 

; 

JMP 

Back_.oet ,- do 

it 

Back_reset: 



LDA 

#00 ;reset to 1st entry of sequ*atial 

STA 

BIT_CT 

,-temp store 

STA 

Tchbck_count 

; 

Back_set: 



LDA 

»Olobal_time 

,- get timer reset value 

STA 

Sensor_timer 

;reset it 

LDA 

BIT_CT 

,-get current pointer to tables 

Back_md: 



STA 

IN_DAT 

,-save decision 

LDA 

»Back_ID .-which ram location for learned word count 


A-71 






(offset) 


JSR 

Start_leam 

;go record training info 

LDA 

IN_DAT 

;get back word to speak 

JSR 

Decid_age 

;do age calculation for table entry 

LDX 

TEMPO 

.-age offset 

LDA 

Tback_Sl,X 

;get lo byte 

STA 

Macro_Lo 

;save lo byte of Macro table entry 

INX 


) 

LDA 

Tback_Sl,X 

;got hi byte 

STA 

Macro_Hi 

,-save hi byte of Piero table entry 

JMP 

Start_macro 

,-go set group/table pointer for motor 4 speh 


The IR routine turns interrupts off for 100 Msec, which stops the 
timing chain (multiplies time by 100). This front end leaves 
interrupts on and sits in a loop for 5 msec to determine if X.R. is 
active and if so, executes normal I.R. routine, else exits. 

......... start Tracker 


;The way to include the IR program, I list as the following: 

;It shows the program prargraph from Ck_IR: to Ck_front: 

;of couse. It also attach the IR.asm file 

;the IR.asm file I just make a little bit change, to make they work at 
;any system clock assume by constant SystemClock: 

.-please advise.. :> 

Ck_IR: 

LDA 
BEQ 
JMP 

CKIR_S: 

LDA 
STA 
LDA 
STA 

IR—req: 

LDA 
AND 
BNE 
LDA 
AND 
BNE 
DEC 
BNE 
LDA 
STA 
DEC 
BNE 
JMP 

Got_IR: 

LDA #05 ;number of times to ck for TR reception 


Last_IR 

;timer stops IR from hearing 

CKIR_S 

;jump if timer 0 


Idle 

•abort if >0 


#FFh 

;set loop timer 


TEMPI 

; 


#10h 

;sot gross timer 


TEMP 2 



Port_B 

;ck if IR signal active 

(hi) 

#IR_IN 

;get port pin 


Got_IR 

1 go do input if active 


Port_B 

;ck if IR signal active 

(hi) 

#IR_IN 

;get port pin 


Got_IR 

;go do input if active 


TEMPI 

,- inside loop 


IR_req 

; 


#FFh 

; reset loop timer. 


TEMPI 

; 


TEMP2 

;outside loop 


IR—req 

iloop thru 


Idle 

,-no activity found 



A-72 









STA 

TEMP4 


Got_IR2: 

JSR 

D_IR_test 

.-used as a subroutine for diags 

BCS 

New_IR 

;jump if found data 

DEC 

TEMP4 j 


BNE 

QoC_IR2 

; loop 

JMP 

Idle 

.■bail out if not 

New_IR: 

JMP 

Normal_IR 



.. 

; Begin Koball's code 


D_IR_test: 


' • • 


SEI 


;;Tracker 


JSR 

GBYTE 

; .-Tracker First time to read 


LDA 

•Intt dflt ;Initialize timers, etc. 


;;Tracker 




STA 

Interrupts .-load reg 


;;Tracker 




LDA 

IN_DAT 

.-.-load result to ACC 


CL I 


S ;Tracker 


RTS 




Normal_IR: 




; There are 

4 I.R. table arranged as all other tables, one for each 

age 

; But here we get a random number which determines which one of the 


; four tables we point to and the actual number received is the one 

of 

; sixteen selection. 



LDA 

IN DAT 

;;Tracker add 


AND 

(OFh 

.-kill hi nibble (con^liment of lo nibble) 


STA 

IN_DAT 

; save 


CMP 

(08 

,-test for special sneeze command 


BNE 

No_sneeze 

.•jump if not 


LDA 

IReally_sick-30 ;force Furby to get sick 


STA 

Sick_counter ;update 


No_sneeze: 




LDA 

Bored_timer 

,- get current count 


STA 

TEMPI 

; save 


Qet_IR_md: 




JSR 

Random 

,-get something 


DEC 

TEMPI 

?-l 


BNE 

Get_IR_md 

,-loop getting randcsn numbers 


LDA 

Seed_l 

.-get new random pointer 


AND 

(OFh 

.•kill hi nibble 


STA 

TEMPI 

; save 


CLC 




SBC 

*11 

;ck if > 11 


BCC 

NormIR_2 

•jump if not 


LDA 

*96 

.■point to table 4 


JMP 

Got_normIR 

; 


NormIR_2: 




LDA 

TEMPI 

;recover random number 


CLC 





A-73 





SBC 

#C7 

;ck if > 7 

BCC 

NormIR_3 

.-jump if not 

LDA 

164 

.-point to table 3 

JMP 

Oot_normIR 


NormIR_3; 


•>* 

LDA 

TEMPI 

;recover random number 

CLC 



SBC 

• 03 

;ck if > 03 

BCC 

NormIR_4 

.-jump if not 

LDA 

• 32 

;point to table 2 

JMP 

Oot_normIR 

; 

NormIR_4: 



LDA 

• 00 

;force table 1 

Got_normIR: 



CLC 



ROL 

IN_DAT 

;16 bit offset for speech 

CLC 



ADC 

IN_DAT 

;create speech field ofsett pointer 

TAX 


.-set offset 

LDA 

IR_S1,X 

;get lo byte 

STA 

Macro_Lo ;save lo byte of Macro table entry 

I NX 


; 

LDA 

IR_S1.X 

.-get hi byte 

STA 

Macro_Hj 

.-save hi byte of Macro table entry 

JMP 

Start_macro ;go set group/table pointer for motor 

spch 



Include IR2.Asm ; asm file 


end Tracker 


; 

; 

; 

; 


Ck_£ront: 


; touch front (tummy) 


JSR Get_£ront ;go ck for sensor trigger 

BCS Normal_front ;go fini normal spch/motor table 

JMP Idle jno request 


Get_fronts ;this is the subroutine entry point. 


LDA 

AND 

BEQ 

LDA 

AND 

STA 

Touch_endi 

CLC 

RTS 

Do_tch_ft: 
LDA 
AND 
BNE 


Port_C 
*Touch_frnt 
Do_tch_ft 
Stat_2 
•Not_tch_ft 
Stat_2 


;get I/O 

;ck if Firby's chest is rubbed 
;jump if lo 

.-Get system 

;clear previously inverted flag 
.-update 


;clear indicates no sensor request 


Stat_2 
•Tchft_dn 
Touch_end 


;get system 
,-ck if prev done 
• jump if was 









LDA 

Stat_2 


;get system 

ORA 

#Tch£t_dn 

; flag 

set .only execute once 

STA 

Stat_2 


;update system 

LDA 

Stat_4 


;game mode status 

ORA 

SDo_tummy 

/flag 

sensor is active 

STA 

Stat_4 


.-update 

SEC 


; set 

indicates sensor is triggered 

RTS 


; 



Normal_front: ;enter here to complete sensor speech/motor 


JSR 

Life 

• g° 

tweek health/hungry 

counters 

BCS 

More_£ront 

; if 

clear then do sensor 

else bail 

JHP 

Idle 

;done 



More_£ront: 


LDA 

*Front_split 

.-get random/sequential split 

STA 

IN_DAT 

;save £or random routine 

LDX 

#Seq_front .-get 

how many sequential selections 

LDA 

*Ran_front .-get 

sequential split 

JSR 

Ran_seq 

,-go decide random/sequential 

LDX 

Sensor_timer 

;get current for training subrout: 

BCS 

Front_rnd ;Random mode when carry set 

LDA 

BEQ 

Sensor_timer 
Front_reset ;yep 

;ck if timed out since last action 

LDA 

Tch£mt_count 

;save current 

STA 

BIT_CT 

,-temp store 

INC 

Tchfrnt_count 

;if not then next table entry 

LDA 

CLC 

Tch£mt_count 

; get 

SBC 

•Seq_front-1 

,-ck if > assignment 

BCC 

Front_set .-jump if < 

LDA 

»Seq_front-1 

;dont inc off end 

STA 

Tchf mt_count 

; 

JHP 

Front_set ;do 

it 


Front_reset: 
LDA 
STA 
STA 

Front_set: 
LDA 
STA 
LDA 

Front_rnd: 
STA 


100 
BIT_CT 

Tch£rnt_count 

»Global_time 

Sensor_timer 

BIT_CT 


; reset to 1st entry o£ sequential 
; temp store 


;get timer reset value 
;reset it 

;get current pointer to tabl* 


IN_DAT 


save decision 






LDA 

(offsot) 
JSR 
LDA 

JSR 

LDX 

LDA 

STA 

INX 

LDA 

STA 

JHP 


•Front_ID 

Start_learn 

IN_DAT 

Decid_age 

TEMPO 

T£mt_Sl,X 

Macro_Lo 

Tfrnt_Sl,X 

Macro_Hi 

Start_macro 


;which ram location for learned word count 

;go record training info 

;get back word to speak 

;do age calculation for table entry 
;age offset 
;get lo byte 

.save lo byte of Macro table entry 
;get hi byte 

;save hi byte of Macro table entry 

;go set group/table pointer for motor 4 spch 


; 

Ck_feed: ; food sensor 


JSR Get_£eed ;go ck for sensor trigger 

BCS Normal_feed ;go fini normal spch/motor table 


JMP Idle ;no request 


Get_£eed: ;this is the subroutine entry point. 


; Each trigger increments the health status at a greater rate 


; Special enable routine to share port pin D1 with invert switch. 
; Feed switch is pulled hi by the DAC1 (aud-a) output only after 
; we test the invert line. If invert is not hi, then turn on 
; DAC1 and ck feed line on same port D1. 


LDA 

Port_D 

* ;get I/O 

AND 

»Ball_invert 

;ck if we are inverted 

BEQ 

St_feed 

;jump if not inverted (lo=not inverted) 

CLC 


.-indicates no request 

RTS 


;if inverted then bypass 

St_£eed: 

LDA 

• FFh 

,-turn DAC2 on to enable feed switch 

STA 

DAC2 

; out 

LDA 

Port_D 

;get I/O 

AND 

»Ball_invert 

;ck if feed switch closed 

BNE 

Start_feed 

;jump if hi 

LDA 

• 00 


STA 

DAC2 

;clear feed sw enable 

LDA 

Stat_3 

;Get system 

AND 

•Not_feed 

.-clear previously inver'ed flag 

STA 

Stat_3 

.-update 

Feed_out: 

CLC 


;clear indicates no request 

RTS 


;go test next 


Start_feed: 

LDA »00 


A-76 









STA 

DAC2 

.•clear feed sw enable 

; LDA 

Stat_3 

.-get system 

; AND 

»Feed_dn 

; ck if prev done 

; BNE 

Feed_out 

,-jump if was 

; LDA 

Stat_3 

;get system 

; ORA 

»Feed_dn 

.•flag set .only execute once 

» STA 

Stat_3 

.•update system 

LDA 

Stat_4 

.-game mode status 

ORA 

#Do_feed 

.•flag sensor is active 

STA 

Stat_4 

.■update 

SEC 


;set when sensor is triggered 

RTS 


; 

Normal_feed 


;enter here to complete speech/motor 


; health table calls here and decision for which speech pattern 


LDA 

CLC 

ADC 

BCC 

LDA 

Feeding_dn 

STA 

;;;;; JSR 

#Food ;each feeding increments hunger counter 

Hungry_counter ;feed him! 

Feeding_dn ;jump if no roll over 

HFEh ;max count 

Hungry_counter .-update 

Life ;go finish sick/hungry speech 

LDA 

*Feed_split 

.-get random/sequential split 

STA 

IN_DAT 

,-save for random routine 

LDX 

#Seq_feed 

.-get how many sequential selections 

LDA 

#Ran_feed 

.-get random assignment 

JSR 

Ran_seq 

,-go decide random/sequential 

LDX 

Sensor_timer .-get current for training subroutine 

BCS 

Feedrand 

,- Random mode when carry set 

LDA 

Sensor_timer ,-ck if timed out since last action 

BEQ 

Feed_reset 

,-yep 

LDA 

Feed_count 

,- save current 

STA 

BIT_CT 

;temp store 

INC 

Feed_count 

;if not then next table entry 

LDA 

Feed_count 

;get 

CLC 



SBC 

*Seq_feed-1 

;ck if > assignment 

BCC 

Feed_Bjt 

.•jump if < 

LDA 

»Seq_feed-l 

;don' inc off end 

STA 

Feed_count 

; 

JMP 

Feed_set 

;do it 


Feed_resetj 


A-77 






LDA #00 ;reset to 1st entry of sequential 

STA BIT CT ;temp store 

STa Feed_count 

Feed_set: 

LDA #Global_time ;get timer reset value 

STA Sensor_timer ;reset it 

LDA BIT_CT .-get current pointer to tables 

Feedrand: 

STA IN_DAT .-sate decision 

LDA #Feed_ID .-which ram location for learned word count 
(offset) 

JSR Start_leom ;go record training info 
LDA IN_DAT .-get back word to speak 

JSR Df>cid_age ;do age calculation for table entry 
LDX 'EMPO ;age offset 

LDA reed_Sl,X ;get lo byte 

STA Macro_Lo ;save lo byte of Macro table entry 

INX ; 

LDA Feed_Sl, X .-get hi byte 

STA Macro_Hi ;save hi byte of Macro table entry 

JMP Start_macro ;go set group/table pointer for motor & spch 


Ck_light: .-Bright light sensor 

JSR Get_light .-now handled as a subroutine 

BCC Ck_light2 ;ju m p if new level > reff 

JMP Idle ;nothing to do 

Ck_light2: 

JMP Normal_light .-jump if new level > reff 


Include Lights.asm .-asm file 


Normal_light: 

; below routines are jumped to by light exec if > reff 


JSR Life 
BCS More_light 
JMP Idle 
More_light: 


LDA #Light_split ;get random/sequential split 

STA IN_DAT .-save for random routine 


,-go tweek heolth/hungry counters 
;if clear then do sensor else bail 
; done 


A-78 











LDX 

#Seq_light 

;get how icany sequential selections 


LDA 

•Ran_light 

;get sensor split table 


JSR 

Ran_seq 

;go decide random/sequential 


LDX 

Sensor_timer 

;get cu.rent for training subroutine 


BCS 

Lghtrand 

.•Random mode when carry set 


LDA 

Sensor_timer 

;ck if timed out since last action 


BEQ 

Lght_reset 

;yep 


LDA 

Lght_count 

;save current 


STA 

BIT_CT 

;temp store 


INC 

Lght_count 

;if not then next table entry 


LDA 

Lght_count 

;get 


CLC 

SBC 

#Seq_light-l 

;ck if > assignment 


BCC 

Lght_set 

.■jump if < 


LDA 

#Seq_liyht-l 

;dont inc off end 


STA 

Lght_count 

; 


JHP 

Lght_set 

;do it 

f 

rr 

.reset: 
LDA 

#00 

;reset to 1st entry of sequential 


STA 

BIT_CT 

;save temp store 


STA 

Lght_count 


Lght. 

.set: 

LDA 

#Global_time 

;get timer reset value 


STA 

Sensor_timer 

;reset it 


LDA 

BIT_CT 

.-get current pointer to tables 

Lglitrand: 




STA 

TEMP4 

.•save seq/rand pointer 


LDA 

Stat_3 

system 


AND 

#Lght_stat 

;ck bit for light/dark table 


BEQ 

Do_dark 

.•jump if clear 


LDA 

TEMP4 

;get pointer 


STA 

IN_DAT 

;save decision 


LDA 

#Light_ID 

.•which ram location for learned word count 

(offset) 

JSR 

Start_learn 

;go record training info 


LDA 

IN_DAT 

.-get back word to speak 


JSR 

Decid_age 

;do age calculation for table entry 


LDX 

TEMPO 

,-age offset 


LDA 

Light_Sl,X 

;get lo byte 


STA 

Macro_Lo 

;save lo byte of Macro table entry 


INX 

LDA 

Light_Sl,X 

;get hi byte 


STA 

Macro_Hi 

,-save hi byte of Macro table entry 


JMP 

Start_macro 

;go set group/table Pointer for motor U spch 

Do_dark: 

LDA 

TEMP4 

;get pointer 


STA 

IN_DAT 

;save decision 



LDA *Dark_ID 
(offset) 

JSR Start_learn 
LDA IN_DAT 

JSR Decid_age 
LDX TEMPO 
LDA Dark_Sl,X 
STA Macro_Lo 
INX 

LDA Dark_Sl,X 
STA Macro_Hi 
JMP Start_macro 


;which ram location for learned word count 

;go record training info 

;get back word to speak 

;do age calculation for table entry 
,-age offset 
.-get lo byte 

;save lo byte of Macro table entry 
;get hi byte 

;save hi byte of Macro table entry 

;go set group/table pointer for motor & spch 


Ck_s ound: 
JSR 
BCS 
JMP 

Ck_sound2: 
JMP 


;Audio sensor 

Gec_80und ;now handled as a subroutine 
Ck_sound2 .-jump if new level > reff 

Idle .nothing to do 


Normalsound 


;jump if new level > reff 


Get_sound: ,-alt entry for diagnostics 


The microphone interface generates a square wave of 2k to 100k. 

We can loop on the sense line and count time for the 

hi period to determine if sound has changed and compare it to previous 
samples. 


SEI 

LDX 

»00 

.•disable interrupts 
.■clear 


STX 

TEMPI 

.•clear buffer 


LDX 

*FFh 

;load loop timer 


STX 

TEMP2 

; 


Ck_end2: 

DEC 

TEMP2 

; 


BEQ 

Ck_snd4 

.•jump if timed out 

LDA 

Port_D 

;get I/O 


AND 

•Mic_in 

;ck sound elk is hi 

BEQ 

Ck_snd2 

,-wait for it to 

go hi 

LDX 

#FFh 

.■load loop timer 


STX 

TEMP2 

; 


Ck_snd3: 

INC 

TEMPI 

.■count during lo elk 

♦ 5 

BEQ 

Snd_ove 

,-juap if rolled over 

♦ 3 

LDA 

Port_D 

.get I/O 

♦2 

AND 

»Mic_in 

;ck if still hi 

♦ 2 

BNE 

Ck_snd3 

'.•loop till lo 

*3 


ll5*166ns=2.49uS) 

JMP Ck_snd4 


Snd_over: 


; done 









we should never get here so bail back to idle and this will 
also prevent system lockup when no elk 


LDA *250 
STA TEMPI 
Ck_snd4: 

CLI 

JSR Kick_IRQ 
LDA TEMPI 
CLC 

SBC *05 
BCC No_snd 


.•never allow roll over 

; 


;re-enable interrupt 

,-wait ft..- motor R/C to start working again 

;get count 

.•clear 

;is diff > 5 

.•bail out i£ not 


LDA 

AND 

BNE 


Stat_3 

•Sound_stat 

No_snd2 


.•system 

;ck for prev done 

.•wait till quiet 


LDA Stat_3 
ORA *Sound_stat 
STA Stat_3 


system 

set prev dn 


LDA Stat_4 
ORA »Do_snd 
STA Stat_4 


set indicating change > reff level 


SEC ;carry se indicates no change 

RTS 


Mo snd: 


LDA 

Stat_3 

.-get system 

AND 

*Nt_snd_stat 

;clear prev dn 

STA 

Stat_3 

; update 


No_snd2: 

CLC ;carry clear indicates no sound 

RTS ;done 

Normal_sound: 

• below routines are jumped to if sound pulse detected 


JSR Life sgo tweek health/hungry counters 

BCS More_sound ;if clear then do sensor else bail 
JMP Idle ;done 

More_sound: 


LDA 

»Sound_split 

STA 

IN_DAT 

LDX 

»Seq_sound 

LDA 

*Ran_sound 

JSR 

Ran_seq 


.-get random/sequential split 
;save for random itine 

:get how many sequential selections 
.•number of random selections 

;go decide random/sequential 


A-81 







LDX 

Sensor_timer 


,-get current for training subroutine 

BCS 

Sndrand 


.-Random mode when carry set 

LDA 

Sensor_timer 


;ck if timed out since last action 

BEQ 

Snd_reset 

;yep 


LDA 

Sound_count 

; save current 

STA 

BIT_CT 


;temp store 

INC 

Sound_count 

; if : 

not then next table entry 

LDA 

Sound_count 

;get 


CLC 




SBC 

#Seq_sound-l 


;ck if > max assignment 

BCC 

Snd_set 


.-jump if < 

LDA 

#Seq_sound-1 


,- dont inc of f end 

STA 

Sound_count 



JMP 

Snd_set 


;dc it 

Snd_reset: 




LDA 

(00 

.reset to 1st entry of sequential 

STA 

BIT_CT 


.-temp store 

STA 

Sound_count 



Snd_set: 




LDA 

*Globai_time 


.-get timer reset value 

STA 

Sensor_timer 


; reset it 

LDA 

BIT_CT 


.-get current pointer to tables 

Sndrand: 




STA 

IN_DAT 


.save decision 

LDA 

#Sound_ID 

.-which ram location for learned word count 

(offset) 




JSR 

Start_leam 

;go 

record training info 

LDA 

IN_DAT 


;get back word to speak 

JSP. 

Decid_age 

; do , 

age calculation for table entry 

LDX 

TEMPO 

■ age 

offset 

LDA 

Sound_Sl,X 

.get 

lo byte 

STA 

Macro_Lo 

,-save lo byte of Macro table entry 

INX 




LDA 

Sound_Sl,X 

.get 

hi byte 

STA 

Macro_Hi 

.-save hi byte of Macro table entry 

JMP 

Start_jnacro 

;go 

set group/table pointer for motor U spch 


1 

J 


•filllllllllllllllllflliilflillllfllfilflflillilllflllllllllllllfllllllll 

Hill 

.-•Misc Subroutines 

;61111111111111111111111111111111111111111111111111111111111111111111111 

mu 

; SENSOR TRAINING 


; Training for each sensor is set up here and the decision if the 


A-S2 








learned 

; word should be played or not. 

; Temp_ID hold the ram offset for the last sensor of the learned word. 

Temp_ID2 hold the ram offset for the current sensor of the learned 
word. 

; IN_DAT holds the current word the sensor chose, and will be loaded 

; the learned word instead if the sensor count > the random number that 
was 

,• just sampled, ie., force learned word to play. 

j •••• 

. If the sensor timer is at 0 when entering here, then the LEARN_TEMP 
; ram location is cleared, else the current learned word is loaded. If 
; the learned word is 0 then all entries are cleared. 


; When entering, check sensor timer and bail if 0. THen test if this is 
; the back switch and if so then move the current sensor to previous 

sensor 

; ram and increment the counter. 

; If this is not the back switch, then get previous sensor ram counter 
and 

. decrement it. THen move all current sensor information to previous and 
j return to caller. 

; Because of training difficulties, we now need two back touches to 
; increment training counters. If only one occurs then the normal 
decrement 

; happens. This double back touch helps to prevent accidentally training 
; with a new macro by hitting the back sw when it is not the macro you 
; have been working with. 


art_leam: 

STA 

LDA 

CMP 

BNE 

CPX 

BNE 


Temp_ID2 

Temp_ID2 

»EEh 

Not_BCK 

#00 

Leam_update 


;sensor ram location of counter (current sensor) 
; get current sensor ID 
; EF= this is the back switch (special) 

;jumpif not 

;ck if sensor timer timed out 

;jump if is back switch and not timed out 


Not_BCK: 

LDA 

CMP 

BEQ 


Temp_ID ;get previous sensor ram offset 

VEEh ;ck if last was back sw 

NotJLeamed {jump if no sensor prev 


LDX 

LDA 

CMP 

BNE 

LDA 

sensor 

CLC 

SBC 

STA 

BCS 

BPL 

LDA 

STA 


Terop_ID {get prev.ous sensor ram offset 

Tilt_leamed,X {get learned word counter from ram 
Leam_temp ;compare with last word 
Do_lrn2 {bail out if different 

Tilt_lrn_cnt,X ,-prev sensor counter ^offset to current 


iLeam_chg ,-dec learned word counter since not back sw 


Tilt_lm_cnt.X 

Do_lrn2 

Do_lra2 

#00 

Tilt_lrn_cnt,X 


update 
jump if > *Leam_chg 
jump if not negative 


(rolled over' 


,-set to xero, no roll over 




Do_lm2: 


LDX 

Temp_ID 

;get sensor learn ram offset 

JSR 

Random 

;get a number 

CLC 



LDA 

Tilt_lm_cnt,X .-get count 

CMP 

• FFh 

;check for max 

BEQ 

Do_lrn2a 

;bypass random 

CLC 



SBC 

Seed_l 

.•random minus learned word counter 

BCC 

Not_learned 

lit less than random then bail out 

Do_lrn2a: 



LDA 

Tilt_leamed, X ;get learned word counter from ram 

AND 

• OFh 

.-make sure never off end of table 

STA 

Tilt_leamed 

1,X .-also in ram 

STA 

1N_DAT 

;force learned word for sensor 

Not_leamed 



LDA 

IN_DAT 

;get curent sensor word 

STA 

Learn_temp 

.SAVE FOR NEXT PASS 

LDA 

Temp_XD2 

;get current sensor 

STA 

Terop_lD 

;save in previous sensor ram 

LDA 

Stat_0 

;system 

AND 

*EFh 

;*Train_Bk_prev" clear 2nd time thru flag 

STA 

Stat_0 

.update 

RTS 


;done-ola 

Leam_update: 


LDA 

Temp_ID 

;sensor ram location for last trigger 

CMP 

• EEh 

;E£= this is the back switch (special) 

BEQ 

Not_learned 

.-bail out if last trigger was also back sw 

CMP 

• FFh 

; only happens on power up 

BEQ 

Not_learned 

;false call 

LDA 

.Stat_0 

.•system 

AND 

»Train_Bk_prev ;is this the 1st or 2nd time thru 

BNE 

Lm_updl 

;jump if 2nd back sw hit 

LDA 

Stat_0 

;system 

ORA 

*Train_Bk_prev .-this is 1st time 

STA 

Stat_0 

l update 

RTS 


;my job is done here ! 

Lm_updl : 



LDA 

Stat_0 

.•system 

AND 

• EFh 

;"Train_Bk_prev* clear 2nd time thru flag 

STA 

Stat_0 

;update 

LDX 

Temr_ID 

;sensor ram location for last trigger 

LDA 

Tilt_learned.X ;get learned word from ram 

CMP 

Leam_temp 

;ck for training of same word 

BEQ 

Lm_upd2 

;jump if is 

LDA 

Learn_temp 

,-get new word trainer wants to use 

STA 

Tilt_l#arned,X ;update new word 

LDA 

*00 

.■reset to 0 for new word to train 


STA Tilt_lm_cnt,X ; 

JMP Not_learned .-done for now 

Lrn_upd2: 

CLC 

LDA Ti 1 t_lm_cnt, X 


;get learned word counter from ram 



; on 1st cycle of new learn, we set counter 1/2 way 


(chicken) 


BNE 

LDA 

STA 

JMP 

Lm_upd2a: 

,- 


Lm_upd2a ; ju m p if not 0 

•80h ;l/2 way point 

Tilt_lm_cnt,X ;update sensor counter 
Clear_learn ;gc finish 

end 1st cycle preload 


ADC *Leam_chg ;add increment value 

BCS Learn_overflw ;jump if rolled over 

STA Tilt_lm_cnt,X .update sensor counter 

JMP Clear_leam go finish 

Leam_over f lw: 

LDA #FFh ;set to max 

STA Tilt_lrn_cnt,X ;save it 

Clear_learn: 

JMP Do_lm2 .-done 


; When IRQ gets turned off, and then restarted, we wait two complete 
; cycle to insure the motor R/C pulses are back in sync. 


Kick_IRQ: 

LDA 

Stat_3 

AND 

*Nt_IRQdn 

STA 

Stat_3 

LDX 

*03 

Kick2: 

LDA 

Stat_3 

AND 

*IRQ_dn 

BEQ 

Kick2 

LDA 

Stat_3 

AND 

INt_IRQdn 

STA 

Stat_3 

DEX 

BNE 

Kick2 

RTS 


;get system 

.•clear IRQ occured status 
.■update system 
;loop counter 

,• system 

;ck if IRQ occured 
.-wait till IRQ happens 
;get system 

.•clear IRQ occured status 
.-update system 

i-1 

.■loop til done 
I is done 


,-EEPROM READ/WRITE 
; Read fc write subroutines 


; 


Do_£E_write: 

; EEPROM WRITE 









; Enter with 'TEMPO' holding adrs of 0-63. Areg holds lo byte and 
; Xreg holds hi byte. If carry is clear then it was succesfull, if 
; carry is set the write failed. 

j MODIFIED eeprom , load lo byte in tempi and hi byte in temp2 
; and call EEWRIT2. 


LDA 

«00 

;use DAC output to put 

TI in reset 

STA 

SEI 

DAC1 

• 

• 

,-tum IRQ off 


LDA 

• 00 

;EEPROM adrs to write data to 

STA 

Sgroup 

,- save adrs 


LDA 

• 13 

;number of ram adrs to 

transfer (x/2) 

STA 

Which_delay 

; save 


LDA 

• 00 

,-Xreg offset 


STA 

Which _mot or 

; save 



,• Need one read cycle before a write to wake up EEPROM 

LDX Which_motor ;eeprom address to read from 
JSR EEREAD ;get data (wakes up eeprom) 


Write_loop: 

LDA Sgroup ;get next EEPROM adrs 

STA TEMPO .-buffer 

LDX Which.motor ;ram source 

LDA Age,>: ; lo byte (data byte #1) 

STA TEMPI ; save data bytes 

INC Which_motor ; 

INX •- 

LDA Age,X ; 

STA TEMP2 ;hi byte (data byte »2) 

JSR EEWRIT2 .-send em 

l BCS EEfail ;jump if bad 

INC Sgroup ;0-63 EEPROM adrs next 

INC Sgroup ;0-63 EEPP.OM adrs next (eeprom writes 2 

bytes) 

INC Which_motor ;next adrs 

DEC Which_delay ;how many to send 

BNE Write_loop ;send some more 


RTS 


; done 


; READ EEPROM HERE AND SETUP RAM 
S_EEPROM_READ: 

; Xreg is the adrs 0-63, system returns lo byte in Areg & hi byte in 
Xreg. 

; on call: X = EEPROM data address (0-63) 

; on return: ACC = EEPROM data (low byte) (also in TEMPO) 

; X = EEPROM data (high byte) (also in TOIP1) 


A-86 





LDA 

#00 

;use DAC output to put TI in reset 

STA 

DAC1 

• 

SEI 


;turn IRQ of f 

LDX 

#00 

;eeprom address to read from 

JSR 

EEREAD 

;get data (one read to init system) 

LDA 

#00 

;EEPROM adrs to read 

STA 

Sgroup 

;save adrs 

LDA 

#13 

;number of ram adrs to transfer (x/2) 

STA 

Which_delay 

; save 

LDA 

#00 

;Xreg offset to write ram data 

STA 

Which_motor 

; save 

Read_loop: 

LDX 

Sgroup 

;EEPROM adrs 

JSR 

EEREAD 

;get data 

LDX 

Which_motor 

; ram destination 

LDA 

TEMPO 

.get data 

STA 

Age, X 

;lo byte (data byte #1) 

INC 

Which_motor 


IMX 

INC 

Sgroup 

; 0-63 EEPRCX1 adrs next 

LDA 

TEMPI 

;get data 

STA 

Age, X 

;lo byte (data byte #2) 

INC 

Which_stctor 

,- next adrs 

INC 

Sgroup 

;0-63 EEPROM adrs next 

DEC 

Which_delay 

;how many to get 

BNE 

Read_loop 

;send some more 

LDA 

#00 

;clear rams used 

STA 

Sgroup 

; 

STA 

Which_motor 

; 

STA 

Which_delay 

• 

CLI 


;Enable IRQ 

JSR 

Kick_IRQ 

;wait for interrupt to restart 

JSR 

TI_reset 

;go init TI (uses , Cycle_timer') 


I 

: 


l Begin Koball'■ code 
;**■****”'. 


i 

I Enable or Disable EEPROM by setting/clearing CS 
i (CS - B.O) 

; 

; on cal1: — 

; on return: — 

; stack usage: 0 

; RAM usage: B_IMG 

; 








EEENA: 


LDA Port_B_Image .-get prev state of port B, 

ORA #001H ; turn on B.O 

JMP EEE02 

EEDIS: 

LDA Port_B_Image ;get prev state of port 3, 

AND #0FEH j turn off B.O 

EEE02: 

STA Port_B ;output to port 

STA Port_B_Image ; and save port image 

RTS 

f 


l 

; Output data bit to EEPROM by placing data bit on 
; EEPROM DI line and toggling EEPROM CLK line. 

; EEPROM DI = A.l 

; EEPROM CLK = A.O 

; on call: C = data bit to be output 

; on return: — 

; stack usage: 0 

; RAM usage: Port_A_image 


OUTBIT: 

BCS OUTB02 .-branch if output bit = 1 

LDA Port_A_image .-get prev state of port A, 

AND #0FDH ; turn off A.l. 

JMP OUTB04 ; 


OUTB02: 

LDA Port_A_iroage .-get prev state of port A. 

ORA #002H ,• turn on A.l, 


OUTB04: 

STA Port_A ; output bit to port 

STA Port_A_image ; and save image 

; toggle EEPROM clock 

I 

TOGCLK: 


LDA 

Port_A_image 


.-get prev state of A 

ORA 

#001H 

; turn 

or. A.O, 


STA 

Port_A 


; o-itput 

to port 

NOP 


;delay 


NOP 


; 



NOP 


; 



AND 

#0FEH 

; turn 

off A.O 


STA 

Port_A 


;output 

to port 










STA Port_A_image ;save image 

RTS j 


• • * • * 

; Read data 16-bit data word from EEPROM at specified address 

; or. call: X = EEPROM data address (0-63) 

; on return: ACC « EEPROM data (low byte) 

I X = EEPROM data (high byte) 

; stack usage: 2 

; RAM usage: TEMPO 


EEREAD: 


I 

EERD10 


STX 

TEMPO 

.•store data addr 

JSR 

EEENA 

;turn on CS 

SEC 


.•send start bit 

JSR 

OUTBIT 

•' 

SEC 


; send READ opcode (10) 

JSR 

OUTBIT 

2 

CLC 


2 

JSR 

OUTBIT 


LDX 

• 6 

;init addr bit count 

ROL 

TEMPO 

,-align MS addr bit in bit 7 

ROL 

TEMPO 

•' 

ROL 

TEMPO 

.•shift address bit into carry 

JSR 

OUTBIT 

;send it to EEPROM 

DEX 


;bump bit counter 

BNE 

EERD02 

; and repeat until done 

LDX 

*16 

jinit data bit count 

LDA 

• 0 

* 

* 

STA 

TEMPO 

;init data bit accumulators 

STA 

TEMPI 

e 

• 

: 

JSR 

TOOCLK 

;toggle clock for next bit 

LDA 

*020H 

;test data bit (B.5) from EEPROM 

BIT 

Port_B 

; 

BNE 

EERD08 

* 

CLC 


;EEPROM data bit = 0 

JMP 

EERD10 

; 

l 

SEC 


;EEPROM data bit = 1 

: 

ROL 

TEMPO 

;rotate data bit into 16-bit 

ROL 

TEMPI 

; accimulator 

DEX 


;bump bit counter 


ASP 






BNE 

JSR 

LDA 

LDX 

RTS 

; 

EERD04 

EEDIS 

TEMPO 

TEMPI 

; and repeat until done 

;turn off CS and return 
;ret w/data byte in ACC 
j and X regs 

; 

; Issue ERASE/WRITE ENABLE or DISABLE instruction to EEPROM 

; (instruction = 

1001100000) 

• 

on call: -- 


on return: -- 


stack usage: 2 


; RAM usage: TEMP3 

! 

• . 

EEWEN: 



LDA 

HOFFH 

;set up enable inst 

JMP 

EEWE02 

<• 

EEWDS: 



LDA 

K000H 

;set up disable inst 

EEWE02: 



STA 

TEMP3 

; save instruction 

JSR 

EEENA 

;turn on CS 

SEC 


.■send start bit 

JSR 

OUTBIT 

• 

CLC 


.-send ENA/DIS opcode (00) 

JSR 

OUTBIT 

; 

CLC 


; 

JSR 

OUTBIT 

: 

LDX 

06 

;init instr bit count 

EEWE04 : 



ROL 

TEMP3 

.•shift instruction bit into carry 

JSR 

OUTBIT 

;send it to EEPROM 

DEX 


;bump bit counter 

BNE 

EEWE04 

; and repeat until done 

RTS 

; 


• 

t 


; Writ* data byte to EEPROM at specified address 

; 

; on call: TEMPO = EEPROM data address (0-63) 

; ACC = data to be written (low byte) 

1 X = data to be written (high byte) 

; on return: C = 0 on successful write cycle 
; C ■ 1 on write cycle time out 

; stack usage: 4 


A-90 












; RAM 

; 

usage: TEMPO, 

TEMPI. fEMP2 


EEWRITs 

STA 

TEMPI 

;save data bytes 


STX 

TEMP2 

• 


EEWRIT2! 

JSR 

EEWEN 

Jsend write enable inst to EEPROM 


JSR 

EEDIS 

jset ' low 


JSR 

I , 

SEC 

EEENA 

j then high again 

;send start bit 


JSR 

CLC 

OUTBIT 

,-send WRITE opcode (01) 


JSR 

SEC 

OUTBIT 

i 


JSR 

OUTBIT 



LDX 

«6 

;init addr bit count 


ROL 

TEMPO 

.•align MS addr bit in bit 7 


ROL 

TEMFO 

-• 


EEWR02: 

ROL 

TEMPO 

.■shift address bit into carry 


JSR 

OUTBIT 

;send it to EEPROM 


DEX 


,-bump bit counter 


&NE 

EE-JR02 

; and repeat until done 


LDX 

*16 

jinit data bit count 


EEWR06: 

ROL 

TEMPI 

.•shift data bit into carry 


ROL 

TEMP2 

; 


JSR 

DEX 

OUTBIT 

.■send it to EEPROM 
;bumn bit counter 


BNE 

EEWR06 

j and repeat until done 


JSR 

EEDIS 

.•cycle CS low 


JSR 

EEENA 

; then high again 


LDA 

• 0 

jinit write cycle 


STA 

TEMPO 

j time out counter 


STA 

TEMPI 

) 


EEWR08: 

LDA 

I020H 

.•test READY/BUSY bit (B.5) 


BIT 

Port_B 

; from EEPROM 


BNE 

EEWR10 

/wait for write cycle to finish 


DEC 

TEMPO 

.•write cycle time out counter 


BNE 

EEWR08 

• 


DEC 

TEMPI 

1 


BNE 

EEWR08 

; 


; 

JSR 

SEC 

EEWR10 

.-time out, disable EEPROM and 
; set carry to signal error 

A-91 





RTS 


EEWR10: 


JSR 

EEWDS 

.-send write disable inst to EEPROM 

JSR 

EEDXS 

.-set CS low 

CLC 


.-clear carry to signal successful write 

RTS 


1 


; Subroutine creates sensor table entry for the selected age. 

; One table for each age. 

; Enter with Acc holding the 1-16 table selection. 

; Exit with Acc k Tempo holding the offset 0-FF of the 1-4 age entry. 

; Special condition where we have only two tables instead of 4 
; (where each table is called based on agel, if the "half_age' bit is 
; set then ages 16 2 call table 1 and ages 364 call table ?. 

Decid_age: 

STA TEMPO .-save O-Of selection 

LDA Stat_l ;system 

AND *Hal£_age ;test if this is a special 2 table select 
BEQ Decid_normal ;jump if net 

LDA Stat_l 

AND #Nt_hal£_age .-clear req 

STA Stat_l ;update system 

LDA Age 

AND *03h ;get rid of bit 7 (9th counter bit ) 

CLC 

SBC *01 ;actual age is 0-3, test if <2 

BCC Dec_agel ;choose age 1 ( actually 0 here) 

JMP Spcl_age2 ;choose age 2 ( actually 1 here) 

Decid_normal: 

;;; mod TestR3a.... 25» of time choEe agel to add more furbish after 
III he is age 4. 

JSR Random ,-get a number 

CLC 

SBC *Random_age ,• below this level selects age 1 
BCS Nospcl_age ;jump if > 

LDA *00 ; set age 1 

JMP Do_age ;go do it 

111 end mod 

Nospcl_age: 


LDA 

Age 

.-get current 

AND 

*03h 

,-get rid of bit 7 (9th counter bit 

CMP 

*03 

;is it age 4 

BNE 

Dec_agej 

,-jump if not 

LDA 

*96 

.-point to 4th field 

JMP 

Do_age 

;finish load from table 


A-92 








Dec_age3: 

CMP 

*02 

BNE 

Dec_age2 

LDA 

*64 

JMP 

Do_age 

Dec_age2: 

CMP 

*01 

BNE 

Dec_agel 

Spcl_age2 s 

LDA 

*32 

JMP 

Do_age 

Dec_agel: 

LDA 

• 00 

Do_age: 

STA 

TEMP2 

CLC 

ROL 

TEMPO 

LDA 

TEMP2 

ADC 

TEMPO 

STA 

TEMPO 

RTS 


; 

; 


;is it age 3 
;jump if not 
.-point to 3rd field 

.-finish load from table 

.-is it age 2 
.-jump if not 

;point to 2 nd field 

.-finish load from table 

,-age 1 

.-point to 1st field 

.-save age offset for speech 

; 16 bit offset for speech 
;which table entry 

,-create speech field ofsett pointer 
,- save 


; Random/sequential decision control for all sensors. 

,- Enter with Acc holding the number of random selections for sensor. 

; Enter with Xreg holding number of sequential selections 
; It.returns with Acc holding the random selection and the carry will 
; be cleared for a sequential mode and set for a random mode. 

; NOTE: if the caller has no random selections then carry will be • 
cleared. 

Ran_8eq: 


STA 

TEMPI 

,- save random max 

STX 

TEMP5 

,-save number of sequentials 

LdA 

TEMPI 

;force cpu status ck 

BEQ 

Seq_decisn 

.-jump if no randoms 

DEC 

TEMPI 

,-make offset from 0 

Ran_loop: 



JSR 

Random 

.-get n 

ROR 

A 

.-move hi nible to lc. 

ROR 

A 


ROR 

A 


ROR 

A 


AND 

• OFh 

,-get lo nible 

STA 

TEMP2 

; save 

CLC 



SBC 

TEMPI 

,-get max random number from sensor 

BCS 

Ran_loop 

,- loop until «< max value 

LDA 

TEMP2 

;get new number 

CMP 

Prev_random 

;ck if duplicate from last attempt 

BEQ 

Ran_loop 

.-loop if is 

STA 

Prev_random 

,-update for next pass 

STA 

TEMPI 

.-new 

LDA 

TEMP5 

;ck if no sequentials 


A-93 








BEQ Ran_decisn ;force random if none 


JSR 

Random 

,-get random/sequential decision 

CMP 

IN_DAT 

;random/seqential split 

;;;;; 

CMP *80h 

;>80=random else sequential 

BCC 

Seq_decisn 

;jump if less 

Ran_decisn: 

LDA 

TEMP5 

;get number of sequential for this pass 

CLC 

ADC 

TEMPI 

;add to random for correct table start point 

STA 

TEMPI 

.■update 

SEC 


.-set carry to indicate random 

RTS 


.-done (Acc holds answer) 

Seq_decisn: 

CLC 


.•clear carry to indicate sequential 

RTS 


.•done (Acc holds answer) 


; Random number generator. 

; SEED_1 & SEED_2 are always saved through power down 
; TEMP3 & TEMP4 are random temporary files. 

; Acc returns with random number, Seed_l also holds random number. 

Random; 

LDA Seed_l 
STA TEMP3 
LDA Seed_2 
STA TEMP4 
CLC 

ROL A 

ROL Seed_l 

CLC 

ROL A 

ROL Seed_l 

CLC 

ADC TEMP4 
STA Seed_2 
LDA 100 
ADC Seed_1 
CLC 

ADC TEMP3 
STA Seed_l 
LDA *00 
INC Seed_2 
ADC Seed_l 
STA Seed_l 

RTS ;return with random number in Acc & seed_l 



A-94 










Life: 


; Each FEET trigger increments the HUNGRY counter by (EQU = FOOD). 

;Hungry >80 (Need_£ood) ♦ Sick >C0 (Really_sick) = normal sensor 

;Hungry >80 (Need_£ood) * Sick <C0 (Really_eick) ■ random SICK/SENSOR 

;Hungry <80 (Need_food) ♦ Sick >C0 (Really_sick) = random HUNGRY/SENSOR 

.•Hungry <80 (Need_food) * Sick <C0 (Really_sick) = random 

HUNGRY/SICK/SENSOR 

.Hungry <60 (Sick_ref£) ♦ Sick <C0 (Really_sick) = random HUNGRY/SICK 

.•Hungry >60 then each sensor motion increments Sick 
.•Hungry <60 then each sensor motion decrements Sick 

; When the system does a cold boot, we set HUNGRY S> SICK to FFh. 

; When returning from here, carry is set if sensor should execute 
; normal routine, and cleared if sensor should do nothing. 

;REFF only - 

H’ .ngry_counter 
;Sick_counter 

;Food EQU 20h ;amount to ii -rease ‘Hungry’ for each feeding 

;Need_food EQU 80h .-below this s arts complaining about hunger 

;Sick_re££ EQU 60h ,-below this starts complaining about sickness 

;Really_sick EQU COh ,-below this only complains about sickness 

;Hungry_dec EQU 01 ;subtract X amount for each sensor trigger 

;Sick_dec EQU 01 ;subtract X amount for each sensor trigger 

;Max_sick EQU see EQU 


LDA Hungry_counter ;current 

.-mod F-rels2 ; 

; CLC 

SEC 

;end mod 

SBC »Hungry_dec ;-X for each trigger 

BCS frst_life ;jump if not neg 

LDA tOO ;reset 

£rst_life: 

STA Hungry_counter ;get count 

CLC 

SBC *Sick_ref£ ;ck if g tting sick 
BCS Sick_inc ;jump if not sick 

LDA Sick_counter ;current 

;mod F-rels2 ,• 

I CLC 

SEC 

;end mod 
;mod testr3a 

; SBC »Sick_dec ;-X for each trigger 

; BCS frst_sick ;jump if not neg 


A-9S 






LDA *00 


;reset 


SBC *Sick_dec ;-X for each trigger 

STA Sick_counter 

BCC Max_Sref ,-jump if neg 

CLC 

LDA Sick_counter ; get again 

SBC *Max_sick ;ck if at minimum allowed count 
BCS frst_sick ,-jump if not at min 

Max_Sref: 

LDA »Max_sick {set to min 

frpt_sicks 

STA Sick_counter 

JMP Hungerl ; 

;end mod testr3a 


Sick_inc: 

INC Sick_counter ;*1 if is 

BNE No_sick_inc ,-jump if did-* roll over 
LDA *FFh ;if did the t t to max 

STA Sick_counter 

No_sick_inc: 

Hungerl: 

LDA SicV_counter ;ck how sick 

CLC 

SBC #Really_sick ,-decide if too sick 

BCC Hunger2 ;jun^3 if < 

LDA Hungry_counter .-check how hungry he 
CLC 

SBC *Need_food ;ck if getting hungry 
BCC Decd_Hung_norm ,-jump if is 

Life_normal: 


to play 
is 


SEC 

RTS 


;tell sensor to do normal routine 
,- done 


Hunger2; 

LDA Hungry_counter .-check how hungry he is 
CLC 

SBC #Sick_r«ff ,-ck if very hungry and a sick 
BCC Decd__Hung_sick ,-only speak hungry / sick 

LDA Hungry_counter ;check how hungry he is 
CLC 

SBC *Need_food ;ck if getting hungry 

BCS Decd_Sick_norm .-jump if is 

; JMP Decd_Hung_sck_nom ,-do hungry k sick speech 

Decd_Hung_sck_norm: 

JSR Random ,-need 3-way decision 

CLC 

SBC »A0h ;hi split 

V,_o' Life_normal ;>A0 = normal senior 
LDA Seed_l ; get again 

BMI Say_sick ;>80 

JMP Say_hunger ;<80 


Decd_Hung_norm: 


A-9f 



JSR 

Random 

;go get random 50/50 decision 

HMI 

Lif e_normal 

l 

JMP 

Say_hunger 


t 

Decd_Sick_norm: 


JSR 

Random 

;go get random 50/50 decision 

BMI 

Life_normal 

; 

JMP 

Say_siek 

J 

Decd_Hung_si ck: 


JSR 

Random 

;go get random 50/50 decision 

BMI 

Say_hunger 

• . 

JMP 

Say_sick 

1 

Say_hunger: 



LDA 

#Hunger_split ;get random/sequential split 

STA 

IN_DAT 

;save for random routine 

LDX 

*Seq_hunger 

;get how man} sequential selections 

LDA 

•Ran_hunger 

;get number oi random slet.ions 

JSR 

Ran_seq 

;go decide random/sequential 

BCS 

Hunger_ran 

;Random mode when carry SET 

LDA 

Sensor_timer ;ck if timed out since last action 

BEQ 

Hunger_reset 

;yep 

INC 

Hungr_count 

;if not then next table entry 

LDA 

Hungr_count 

.-get 

CLC 



SBC 

#Seq_hunger- 

1 ;cfc if > assignment 

BCC 

Hunger_side 

/jump if < 

LDA 

*Seq_hunger- 

1 ;dont inc off end 

STA 

Hungr_count 

J 

JMP 

Hunger_side 

;do it 

Hunger_reset: 


LDA 

*00 

/reset to 1st entry of sequential 

STA 

Hungr_count 

J 

Hunger_side 



LDA 

#Global_time ;get timer reset value 

STA 

Sensor_timer /reset it 

LDA 

Hungr_count 

/get current pointer to tables 

Hunger_ran: 



JSR 

Decid_age 

/do age calculation for table entry 

LDX 

TEMPO 

/age offset 

LDA 

Hunger_Sl,X 

/get lo byte 

STA 

Macro_Lo 

/save lo byte of Macro table entry 

INX 


; 

LDA 

Hunger_Sl,X 

/get hi byte 

STA 

Macro_Hi 

/save hi byte of Macro table entry 

JSR 

Oet_macro 

/go start motor/speech 

JSR 

Notrdy 

/Do / get status for speech and motor 

CLC 


/tells sensor to do nothing 

RTS 



Soy_aick: 



LDA 

*Sick_split 

/get random/sequential split 

STA 

XN_DAT 

/save for random routine 

LDX 

*Seq_sick 

/get how many sequential selections 

LDA 

t!Ran_sick 

/get number of random elections 


A-97 



JSR Ran_seq a decide random/sequential 

BCS Sick_rai ;Rar . .node when carry SET 

LDA Sensor_Cimer ;ck if timed out since last action 

BEQ Sick_reset ;yep 

INC Sickr_count ;if not then next table entry 

LDA Sickr_count ;get 

CLC 

SBC #Seq_sick-l ;ck if > assignment 

BCC Sick_aide ;jump if < 

LDA *Seq_sick-l ;dont inc off end 

STA Sickr_count ; 

JMP Sick_side ;do it 

Sick_res#t: 

LDA #00 ;reset to 1st entry of sequential 

STA Sickr_count ; 

Sick_side: 

LDA #Global_time rget timer reset value 

STA Sensor_timer ;reset it 

LDA Sickr_count ;get current pointer to tables 

Sick_ran: 

JSR 
LDX 
LDA 
STA 
INX 
LDA 
STA 
JSR 
JSR 
CLC 
RTS 

. • * • • 

) 


GoToSleep: 

j sa e light sensor fail or sleep command in 'Seed_2' into EEPROM 

LDA Stat_0 ;systew 

AND »Dark_6leep_prev ; 

BEO Nodrk_prev ;jump if none 

LDA #01 ;set flag that it was done 

STA ’eed_2 ;save in EEPROM 

JMP G'2 

Nodrk_prev: 

LDA #10 ;set flag that it was clear 

STA S«ed_2 ;save in EEPROM 

Gs2: 


; EEPROM WRITE 


Decid_age ;do age calculation for table entry 
TEMP'' ;age offset 

Sick_Sl,X ;get lo byte 

Macro_Lo ,-save lo byte of Macro table entry 

; 

Sick_Sl,X ;get hi byte 

Macro_Hi e hi byte of Macro table entry 

Get_macrc ,go start motcr/speech 

jro.iay ;Do / get status for speech and motor 

.•tells sensor to d nothing 


A-98 









; Enter with 'TEMPO' holding adrs of 0-63. Areg holds lo byte and 
; Xreg holds hi byte. If carry is clear then it was succesfull, if 
; carry is set the write failed. 

; MODIFIED eeprom , load lo byte in tempi and x byte in temp2 
; and call EEWRIT2. 


LDA 

too 

.-use DAC output to put TI in reset 

STA 

DAC1 

l 

SEI 


,-turo IRQ off 

LDA 

too 

.•EEPROM adrs to write data o 

STA 

Sgroup 

,-save adrs 

LDA 

113 

;number of ram adrs to transf. (x/2) 

STA 

Which_delay 

; save 

LDA 

too 

;Xreg offset 

STA 

Which_motor 

; save 


; Need one read cycle before a write to wake up EEPROM 

LDX Which_motor .-eeprom address to read from 
JSR EEREAD ;get data (wakes up eeprom) 


IWrite_loop: 


bytes) 


LDA 

Sgroup 

STA 

TEMPO 

LDX 

Which_motor 

LDA 

Age, X 

STA 

TEMPI 

INC 

Which_motcr 

IN7 


LDA 

Age, X 

STA 

TEMP2 

JSR 

EEWRIT2 

BCS 

EEfail 

INC 

Sgroup 

INC 

Sgroup 

INC 

Which_motor 

DEC 

Which_delay 

BNE 

IWrite_loop 


,-get next EEPROM adrs 
,-buffer 
; ram source 

; lo byte (data byte tl) 
,-save data bytes 


,-hi byte (data byte #2) 

;send em 
,-jump if bad 

.-0-63 EEPROM adrs next 
;0-63 EEPROM adrs next 

;next adrs 

,-how many to send 

,- send some more 


(eeprom writes 2 


GoToSleep_2: 


Include 


Sleep.asm ; 


!• £11111111111111111111111111111111111111111111111x1111111111111111111111 

mu 

,- 'Interrupt Su) routines 

; £1111111111111111111111111111111111111111111111111111111111111111111111 
111 11 


A-99 




............ CAUTION •••*»••••••• 

; Any ram location written outside ,o£ IRQ can only be read in the IRQ, 

I likewise if written in the IRQ, then can only be read outside the IRQ. 
; THIS WILL PREVENT DATA CORRRUPTION. 


NMI: 

RTI ;Not used 


IRQ: 

PHA .-push acc on stack 

PHP ;punh cpu status on stack 

....... timer A = 166 uSEC ••••••• 

CkTimerA: 


; 

LDA 

Interrupts 

;get who 

did 

it 

; 

AND 

• 20H 

; test 

for 

timerA 

; 

BNE 

Do_ta 

,-jiimp if 

is 


; 

JMP Ck_ 

.timerE ; 





;Do_ta: 


...... timer B = 700 uSEC ****** 

Ck_timerB: 

LDA Interrupts ;get status again 

AND #10H ;test for timer B 

BNE Do_timeB jjump if request true 
JMP Intt_false .-bypass all if not 

j also changed TimerB relaod value from »10h to 00 in EQ'J 

Do_timeB: 


I RE-CALIBRATE SWITCH for motor position 

; This counter must meet a threshold to decide if the 
I calposition t ..tch is really engaged. 


LDA 

AND 

BNE 

INC 

BNE 

LDA 

STA 

Cal_noroll: 
LDA 
CLC 
SBC 
BCC 
LDA 
STA 


Port_C ;get I/O 

•Motor_cal ;lo when limit hit 

No_cal_sw ;no position switch found 

Cai_switch_cnt ;ine each time found low 

Cal_noroll ;jump it dtdnt roll over (stopper on sw tch) 

•31 ;max count 

Ca1_swit ch_cnt ; 

Cal_switch_cnt ; 

•30 ;ck if enough counts 

No_lim_stp .-jump if not enough 
•Cal_pos_fwd ; force value 

Pot_timeL2 ;reset both 










JMP 


No_lim_stp ; done 


No_col_sw: 

LDA #00 ;clear count if hi 

STA Cal_switch_cnt ;update 


No_lim_stp: 


LDA 

Wait_time 

;4 times thru loop = 

2.9 msec 

BNE 

WTa 

;>0 


LDA 

#04 

;counter reset 


STA 

Wait_time 

;reload 


JMP 

Timer_norm 

; 


DEC 

Wait_time 

• 


JMP 

TimerB_dn 

.-bypass timers until 

done 


Timer_norm: 


LDA 
BEQ 
DEC 
No_spd_m: 

LDA 
BEQ 
DEC 
No_mstop: 

LDA 

BEQ 

DEC 

TimeBl• 

L7A 

E^Q 

DEC 

TimeB2i 
;m LDA 
m BEQ 
,- m DEC 
TimeB3: 

DEC 

BNE 

INC 

TimerB_dn: 


Below routines run at 2.9 msec 

Mot_speed_cnt ;ck for active 

No_spd_m ;jump if not 
Mot_speed_cnt ;-l 


motorstoped .-motor drift timer 
Nc_mstop .-jump if done 
motorstoped ;-1 


Motor_led_timer 

TimeBl 

Motor_led_timer 


,- Motor_led timer * 742 mSec 
.-jump if done 
; -1 


Cycle_timer 

TimeB2 

Cycle_timer 


;2.9mSec timer * cycle reload 
.•jump if done 


J-l 


Motor_pulse ;2.9mSec timer • Motor_pulse 
TimeBl ;jump if done 

Motor.-'Ulse ; -1 


Mili_sec ;-1 & allow rollover 

TimerB_dn .-wait for rollover (2.9mS • 256 = 742mSec) 
Milisec_flag ;tell task rtn to decrement timers 


********** We could test all interrupts here as needed 

Ck2Khz: 

CkSOOhz 

Ck60hz: 


Check motor position - IR slot in wheel sensor 








; This version does two reads to eliminate noise and sets a done flag to 
j prevent multiple counts. It also reads twice when no slot is present 
to 

J clear the done flag. 


LDA 

Port_C 

;get I/O 


AND 

#Pos_sen 

;ck position sensoi 


BNE 

Clr_pos 

jjump if no I _,ger 


LDA 

Port_C 

j get I/O 


AND 

*Pos_sen 

; READ 2x to prevent noise trigger 


BNE 

Clr_pos 

jjump if no IR trigger 


LDA 

Slot_vote 

;get prev cycle 


BEQ 

Pc_donc 

,-bail if prev counted 


LDA 

#00 

t 


STA 

S’.ot_vote 

;set ram to 0. (faster than setting 

a bit) 

JMP 

Force_int 

j go count slot 


Clr_pos : 

LDA 

Port_C 

jget I/O 


AND 

#Pos_sen 

; READ 2x to prevent noise trigger 


BEQ 

Pc_done 

;not 2 equal reads so bypass i 

this cycle 

STA 

Slot_vote 

.-set ram to 1. (faster than setting 

a bit) 

JMP 

Pc_done 

; 



ExtportC: 

JMP Intt_£alse ;this should be turned off 


; 


LDA 

Interrupts 

,-get status again 

AND 

#01H 

; test 

for port C bit 1 rising edge 

BEQ 

Pc_done 

; jump 

if not 


Force_int: 


» 

LDA 

Port_D_Image 

.-system 

* 

AND 

#Motor_led 

;ck if position I.R. led is on 

i 

BEQ 

Pc_done 

jjump if not off 


LDA 

Stat_2 

,-get system 


AND 

#Motor_£wd 

;if set then FWD else REV 


BEQ 

Cnt_rev 

jjump if clr 


INC 
CLC 

Pot_timeL2 

;sensor counter 


LDA 

Pot_timeL2 

j current 


SBC 

#207 

jck for > 207 


BCC 

Updt_cnt 

jjump if not 


LDA 

#00 

jrol1 over 


STA 

Pot_tiroeL2 

» 

Cnt_ 

JMP 

rev: 

l)pdt_cnt 

•' 


DEC 

CLC 

Pot_timeL2 

J-1 


LDA 

#208 

jtnax count 


• ; 

Pot_timeL2 

,-ck for negative ( >207 ) 

Cnt_ 

-S 

c . 

Updt_cnt 

jjump if not 


LDA 

• 207 

.-when neg roll over to max count 

Updt 

STA 
_cnt: 

Pot_t imeL2 

{ 


INC 

Drift_counter ;to be used for braking pul 


A-102 





LDA Pot_timeL2 ;get current count 

STA Pot_timeL ;save in motor routine counter 

; THis routine used to calculate motor speed based on battery voltage. 
LDA Mot_speed_cnt ;ck for active 

BEQ Pc_done ;jump if not 

INC Mot_opto_cnt 

Pc_done: 

LDA Motor_led_timer ;ck if active (>0) 

BEQ Hot_led_off .-jump if done 

LDA Port_D_Image ;system 

ORA #Motor_led ;turn LED on 

JMP Mot_led_dn ; 

Mot_led_off: 

LDA Port_D_Image ;system 

AND *Nt_Motor_led ;turn LED off 

Mot_led_dn: 

STA Port_D_Image ;update motor led 

M_drft_Fl: 

LDA Drift_fwd ;grt delay value 

BEQ M_drft_Rl ;jump if prev done 

LDA Drift_fwd ;get delay value 

CMP *01 ;01=turn motors off 

BEQ M_drft_F2 ,-send it 

DEC 

;m32 

LDA 
AND 
STA 

;m32 

LDA 
ORA 
AND 
JMP 
M_drf t_F2 
DEC 
LDA 
ORA 
JMP 

M_drft_Rl 
LDA 
BEQ 
LDA 
CMP 
BEQ 
DEC 

;mJ2 

LDA 
AND 
STA 

;m32 

LDA Port_D_Image ;get system 

ORA *Motor_off ;tum both motors off 

AND *Mctor_revs .-move motor in rev dir to stro motion 


Dnft_fwd ;-l 

Port_D_Imaae ;get system (note lo is tranys off) 

*3Fh ;turn both motors off to prevent transistors 

Port_D ;on at same time 

Port_D_Image ;get system 

*Motor_off ,-turn both motors off 

*Motor_fwds .-move motor in wd dir to stop motion 

Intt_motor_end 

Drift_fwd ;-l 

Port_D..Image jget s stem 

»Motor_of£ ;turn both motors off 

Intt_motor_end 


Drift_rev ;get delay value 
Intt_motor ;jump if prev done 
Drift_rev ,get delay value 

*01 ;01=turn motors off 

M_drft_R2 .-send it 
Drift_rev ;-l 


Port_D_Image ;get system (note lo is tranys off) 

»3Fh (turn both motors off to prevent transistors 

P-rt_D son at jame time 


A-103 




JMP Intt_jnotor_end 

M_drft_R2: 

DEC Drift_rev ;-l 

LDA Port_D_Image .-get system 

ORA *Motcr_off ;turn both motors of£ 

JMP Intt_notor_end 

Intt_motor: 

LDA St«t_3 

AND dCOh jget motor command bits 

STA Intt_Temp ;sav • motor direction 

;_ Furbyir .. move motor pulse width to interrupt routine 

LDA Motor_pulsel .-get on time 

BEQ Intmotorl ,-jump if 0 

DEC Motor_pulsel ;-l 

JMP Intmotor_dn .-exit (dent change Intt_temp if on) 

Intmotorl: 

LDA Motor_pulse2 ;get off time 

BEQ Intmotor2 ;got reset timer 

DEC Motor_pulse2 ;-l 

LDA »C0h .-shut motor off 

STA Int t_Temp ; 

JMP Intmotcr_dn .-exit 

Intmotor2: 

LDA Mon_!en .-reset on time 

STA Motor_pulsel 

LDA Moff_len .-reset off time 

STA Motor_pulse2 ; 

Intmotor_dn 

;- end motor pulse width 

LDA Port_D_Image .-get system 

AND *3Fh .-clear motor direction bits 

CLC 

ADC Intt_Temp .-put in motor commands 

Intt_motor_end: 

STA Port_D_Image ,-update system 

,- st Tracker 

EOR »%11000000 ;;Tracker add invert motor drivers 

I end Tracker 

STA PortJD ;output 

Intt_done: ;g>- -ral turn 

LDA Stat_3 ;syst. 

ORA * IRQ dn .-flag tern IRQ occured 

STA Stat_3 ,-uplat 

Intt_false: 

LDA I00H ;clear all intts first 

STA Interrupts j 

LDA »Intt_dflt ,-get default for interrupt reg 
STA Interrupts .-set reg & clear intt flag 

?LP ; recover CPU 


A-104 




PLA 


;recover ACC 


RTI 


;reset interrupt 


........................ 

; Communication protocal with the TI is: 

; FF is a no action command, (used as end of speech command) 

; FE seta the command data mode and the TI expects two 

; additional data bytes to complete the string. (3 TOTAL) 

; ALL OTHERS (0-FDI ARE CONSIDERED START OF A SPEECH WC-aD ! 

; Command data structure is BYTE 1 ♦ BYTE 2 ♦ BYTE 3 

,• BYTE 1 is always ~E 


; Command 1 

I BYTE 2 = FE is pitch table control; 

I BYTE 3 = bit 7 set = subtract value from current course value 

; clr = add value to current course value 

; bit 6 set = select music pitch table 

; clr = select normal speech pitch table 

; bit 0-5 value to change course value (no change = 0) 


Command 2 

BYTE 2 = FD is Infrared transmit cmnd 

BYTE 3 = Is the I.R. code to send ( 0 - OFh only ) 


Command 3 

BYTE 2 = FC is the speech speed control 

BYTE 3 * a value of 0 - 255 where 2Eh is normal speed. 


, Enter subroutine with TEMPI = command byte (1st) 
; TEMP2 * data byte (2nd) 


Xmi t_.TI: 


LDA 

*FEh 

;tells TI command da.a to follow 

JSR 

Sp>.'n_more 

;out data 

LDA 

TEMPI 

;command code 

JSR 

Spch_more 

;out data 

LDA 

t pmp2 

;data to send 

JSR 

Spch_more 

;out data 

RTS 


; done 


; There is an entry for each bank of speech and only the words in tha' 
; bank are in the list. THis is a subroutine coll. 

; The first time thru, w« call SAY_x and as long as WORD_ACTIV or 
SAY_ACTIV 

; is set we call DO_NEXTSENT until saysent is done. 

; There are 4 groups of 128 pointers in ea h group. This gives 512 


A-10S 









saysents. 


I 1. Enter with 'Which_word' holding 0-12’’ and ’Sgroup' for the 1 of 4 
tables 

; which points to two byte adrs of a saysent. These two bytes are 
I lo-ded into Saysent_lo & Says«nt_hi. 

; 2. Dat~ s shuffled to the TI according to the BUSY/REQ line 


; Currently we have 167 speech words or sounds in ROM. Words 1-12 
; are in bank 0 ad 13 - 122 are in bank 1 & 123 - 167 in bank 2. 


Say_0: 

LDA 


CMP 
BEQ 
CMP 
BEQ 
CMP 
BEQ 
Dec_sayl: 

LDA 
STA 
INX 
LDA 
STA 
JMP 
Dec_say2: 

LDA 
STA 
INX 
LDA 
STA 
JMP 
Dec_say3: 

LDA 
STA 
INX 
LDA 
STA 
JMP 
Dec_say4: 

LDA 
STA 
INX 
LDA 
STA 
Dec_say5: 
LDX 
LDA 
STA 
LDA 
STA 
JSR 
INC 
BNE 
INC 


i* ord ;get off sett 

,-load offset to Xreg 
group ;get current 

»03 ;is it table group 4 

Dec_say4 .jump if is 
»02 ;is it table group 3 

Dec_say3 jjump if is 
• 01 ; is it table group 2 

Dec_say2 ;jump if is 

;default group 1 
Spch_grpl,X .-get lo pointer 
Saysent_lo ;save 
;X«1 

Spch_grpl.X ,-get hi pointer 
Saysent_hi ;save 
Dec_say5 ;go calc word 

Spch_grp2,X ;get lo pointer 
Saysent_lo ;save 
;X»1 

Spch_grp2,X .-get hi pointer 
Saysent_hi ;save 
Dec_say5 ;go calc word 

Spch_grp3, X ,-get lo pointer 
Saysent_lo ;save 
;X-1 

Spch_grp3,X ;get hi pointer 
Saysent_hi .-save 
Dec_say5 ;go calc word 

Spch_grp4,X ;get lo pointer 
Saysent_lc ;save 
;X*1 

Spch_grp4,X ;get hi pointer 
Saysent_hi ;save 

»00 ,-no offsett 

(Saysent_lo,X) ;get data @ bit adrs 
TEMP2 .-save new speech speed 

«FCh .command for TI to except speed data 

TEMPI ; 

Xmit_TI ;send it to TI 

Saysent_lo ,-next saysent pointer 
Xney_say ;jump if no roll over 
Saysent_hi ;♦! 


A-106 



Xnay_say: 

LUX »00 ;no offsett 

LDA (Saysent_lc,X) .-get data 0 16 bit adrs 

CLC 

ADC Rvoice ;adjut to voice selected on power up 

STA TEMP2 ;save new speech pitch 

LDA #FEh jconroand for TI to except pitch data 

STA TEMPI 


The math rout Ine converts the value to 00 for 80 and 
if j0 then subtracts from 80 to get the minus ver ' a of 00 
ie. if number is 70 then Tl gets sent 10 (-1 


LDA 

TEMP2 

.•get voice with 

offsett 

BKI 

No_voice_ 

_chg ;if >80 then no char 

LDA 

CLC 

#80h 

.•remove offsett 

if <80 

SBC 

TEMP2 

.•kill offsot 


STA 

TEMP2 

;update 



No_voice_chg: 

JSR Xmit_TI ;send it to TI 

Do_nextsent: 

Frst_say: 

INC Saysent_lo ;next saysent pointer 
BNE Scnd_say ;jump if no roll over 

INC Saysent_hi ;*1 

Scnd_say: 

LDX #00 ;no offsett 

LDA (Saysent_lo,X) ;get data 0 16 bit adrs 
CM'' #FFH ; check for end 

BEQ Say_end ;done 

LDA (Saysent_lo,X) ;get data 0 16 bit adrs 
STA Which_word 

Ntest: 

CLC 

SBC #12 ;ck if in bank 1 

BCS Get_groupl ;jump if is 

Get_group0: 

LDA #00 jset bank 

STA Bank_ptr ;Bank number 

CLC ;clear carry 

LDA Which_word ;get word 

ROL A ;2 1 s offsett 

TAX ;1oad offset to Xreg 

LDA Word_group0,X ;get lo pointer 

STA Word_lo ;save 

INX ;X*1 

LDA Word_group0,X ;get hi pointer 

STA Word_hi ;save 

JMP Word_fini ;go do it 

Get_groupl: 

LDA Which_word ;selection 

CLC 

SBC #122 ;ck if in bank 2 

BCS Get_group2 jjump if is 


A-107 




LDA 

#01 .-set 

bank 

STA 

Bank_ptr 

;Bank number 

CLC 



LDA 

Which_word .-get 

word 

SBC 

#12 .-1st 

12 in word_group0 

CLC 



ROL 

A ; 2 ’ s 

offsett 

TAX 

,-load offset to Xreg 

LDA 

Word_groupl,X 

;get lo pointer 

STA 

Word_lo 

; save 

INX 

;X*1 


LDA 

Word_groupl,X 

;get hi pointer 

STA 

Word hi 

; save 

JMP 

Wor _.ini 



OoC_group2: 
LDA 
STA 
CLC 
LDA 
SBC 
CLC 
ROL 
TAX 
LDA 
STA 
I NX 
LDA 
STA 

Word_finis 
LDA 
ORA 
ORA 
STA 
JMP 


#02 ;sec bank 

Bank_pT ; Bank number 

;clear carry 
Which_word ;get word 

#122 ;lst -22 in word_group Oil 


A ;2‘s offsett 

.•load offset to Xreg 
Word_group2,X iget lo pointer 

Word_lo ;save 

;X»1 


Wc.d_group2,X ;get hi pointer 

Word_hi ;save 


Stat_l 

#Say_acti 

#Word_activ 

Stat_l 

Do_spch 


;get system 

;Set spch active after word pointer loaded 
;Set status •. 

.•update system 
.go say it 


Say_end: 

LDA Stat_l 
AND #"lr_spch 
STA Stat_l 
RTS 


;get system 

.•turn say_activ & Spch_activ off 
.-save system 

done 


; This is the re-entry point during speech for all woi to be spoken 

. •*••••*• start of chg for 3 - »FFh xmits ti TI 

Do_spch: 


LDA 

Bank_ptr 

;Bank number 

STA 

Bank 

;set it 

LDX 

#00H 


LDA 

(Word_lo,X) 

.-Get the speech ■ 

CMP 

•FFH ;is 

it end of word 

BNE 

Clr_word_end 

.•jump i r not en. ! 

LDA 

Stat_l 

;get system 

AND 

#Word_term ;was 

it prev set 

BEQ 

Set_end 

; nope 


A-108 




Wake2.a6m 


WAKE2 

adds deep sleep -rude. If 'Deep_aleep'»llh Chen tile will not 
wake us up. only invert. 


; Power up reset decision for three types of startups 

; 1. Powerup with feed switch zeros ram & EEPH CM, & calls 10-200-10 macro. 

I 2. Power up from battery change wont clear EEPRCK but calls 10-200-10 macro. 
; 3. Waki up from Port_D clears ram and jumps directly to startup. No macro. 


SEI 


(interrupts off 

LDX 

•C0H 

.•startup setting 

STX 

Interrupts 

.■disable Watch Dog 

LDX 

#FFH 

(Reset stack pointer address S0FFH 

TXS 

LDX 

• 0 


LDA 

Wake_up 

,-Get the information from h‘ rdware to check 

STA 

TEMPS 

whether reset is from po er up or wakeup 

STX 

Wake_up 

.•disable wakeup immediately, this action can 

AND 

*400000001 

.•stop the reset occupied by another changed on 
;portD, so once the program can execute to 
(this line then chip will net be reset due to 
.•port changed again 

,-mask the rest of bit and just check the port 

BEC 

Power_battery 

.-wake up information 

(jump to power up initial if not port D 

; Need to debounce tilt and invert since they are very unstable 

Ck_wakeup s 

LDA 

•00 

;clear 

STA 

TEMPI 

; 

STA 

TEMPI 

,* 

LDX 

•FFh 

;loop counter 

Dbnc_lp: 

LDA 

Porc_D 


AND 

• 01 

.•ck tilt sw 

BEQ 

Dbnc_lp2 

.•juirp if not tilt 

INC 

TEMPI 

,-switch counter 

Dbnc_lp2 s 

LDA 

Port_D 


AND 

•02 

(ck invert sw 

BEQ 

Dbnc_lp3 

.•jump if not invert 

INC 

TEMP2 

.•switch counter 

Dbnc_lp3 s 

DEX 


cl loop court 

BNE 

Dbnc_lp 

(loop 

LDA 

Deep_sleep 

(decide if normal or deep sleep 

CM. 

•llh 

( 

BEQ 

Dbnc_lp4 

(if deep sleep then only test invert 

LDA 

TEMPI 

(get tilt count 

BEQ 

Dbnc_lp4 

.•jump if 0 

CLC 

SBC 

». 

.■min count to insure not noise 

BCS 

Power_Port_D 

(jump if > min 


Page 1 


A-109 





Wafce2 - asm 


Dbnc_lp4: 


LDA 

TEHP2 

;get invert count 

BEQ 

Dbnc_lp‘ 

(junp if 0 

CLC 


SBC 

•10 

,-Biin count to insure not noise 

BCS 

Power_Port_D 

; jusp if > Biin 


Dbnc_lp5i 

(Verify Chat Port_D i» no longer changing before going to aleep. 

(If not, the CPU will lock up without setting the low power node. 
(Before we exit here when count is less than minisum count, we Bust 
(be sure Port_D is not changing. If we ]unp to sleep routine when 
(it IB not stable, the sleep routine will wait forever to be stable 
(Which causes Furby app-ar to be locked up. 


LDA 

•00 

/ 

STA 

TEMPI 

.-counter 

LDA 

Port_D 

.get current statu* 

Test_Bleep: 

CMP 

Port_D 

.•check if changed 

BNE 

Ck_wakeup 

.-start over if did 

DEC 

TEMPI 

(-1 counter 

BNE 

Test_sleep 

(loop 

,’MP 

OoToSleep_2 

(Otherwise, iust goto sleep again 

Power_Port_D: 

LDA 

•llh 

.-signal port D wake-up 

STA 

Wann_cold 

JMP 

L_PowerOnInitial 

Power_battery: 

LDA 

•OSh 

[Signal battery wakeup 

STA 

Wann_ccid 

: 


L_PowerOnInitial: 

LD* #00 .-clear deep sleep conraar.d 

STA Deep_sleep 


Page 2 


A-UO 



Light5.asm 


..................................................................... 

11 MODS i 
; LIOHT3.asm 

; Add test to light counter eo that if the oscillator 
l fails, the system will ignore light sensor and keep running. 

; 

; Light! 

! When goes to conpiete dark and hits the •Dark_sleep 1 level 
i and stays there until the reff level updates, at that point 
i we send Furby to sleep. 

I 

i Lights (used in F-RELS2 ) 

i Change detection of light threshold to prevent false or continue.s trigger. 


Bright 

EQU 

15 

;light sensor 

trigger > reff level (Hon) 

Dim 

EQU 

15 

;Light sensor 

trigger < reff level (Hon) 

Shift_reff 

EQU 

10 

imax count to 

set or clear prev done flag 

Dark_sleep 

EQU 

BOh 

.-when timer A 

hi =0f and timer A low 


is = to this EQU then send him to sleep 


; The CDS light sensor generates a square wave of SOOhz to 24khz based on 
; light brightness. We can loop on the sense line and count time for the 
; lo period to determine if light has changed and conpare it to previous 
; samples. This also determines going lighter or daiA.*r. W also set a timer 
; so that if someone holds their hand over the sensor and we announce it. 

I if the change isnt stable for 10 second, we ignore the change back to the 

; previour state. If it does exii for > 10 seconds, then it becomes the 

! new sample to compare against on the next cycle. 

; In order to announce light change, the system must have a consistent 
j count > 'Shlft_x«ff'. 

i If a previous retf has been set then the , L'p_light' bit is set to 
l look for counts greater than the reff. The system passes through the 
i light routine 'Shift_reff times. If it is consistently greater than 
; the reff level, we get a speech trigger If any single pass is less 
; than the reff, the counter is set back to zero. This scenario also 

; is obeyed when the trigger goes away, ie remove your hand, and the system 

; counts down to zero.(‘Up_light' bit is cleared ) If during this time any 
i trigger greater than reff occurs, the count is set back to max. 
i This should prevent false triggers. 


Oet_lighti jalt ent^ / for diagnostics 

I This uses timer A tc get a count from the lo period of the elk 


SEI 


,'inteirupts off 

LDA 

#0C0H 

.■disable timer, clock, ext ints. 

STA 

Interrupts 

; & watchdog; select IRQ int. 

LDA 

• 000H 

;set timer A for timer mode 

STA 

TOA_CON 

! 


Page 1 


/■111 






Light5.asm 


LDA 

#OOOH 

;re-start timer A 


STA 

TMA_LSB 

< 


LDA 

ffOOOK 

.•now CPUCLK; was *010H - CPUCLK/4 

(Honl 

STA 

IMA J1SB 

1 


Ck_lght2i 




LDA 

TMA_MSB 

.-test for dead light osc 


AND 

#0Fh 

iget timer 


CMP 

•OFh 

zck 'or > OE 


BNE 

Ck_lt2a 

,-jump if not 


LDA 

TOA_LSB 

;get lo byte 


CLC 




SBC 

•EOh 

/ck for > ,mnb-*lsb *OFEO) 


BCC 

Ck_lt2a 

/jump if not 


JMP 

Light_fail 

/bail out if > 


Ck_lt2a; 




LDA 

Port_D 

/get I/O 


AND 

•Light_in 

;ck light elk is hi 


BEQ 

Ck_lght2 

/wait for it to go hi 


LDA 

•OOOH 

/re-start timer A 


STA 

TMA_LSB 

z 


LDA 

tr'OH 

/now CPUCLK/ was fOlOH = CPUCLK/4 

(Honl 

STA 

-A_KSB 

/ 


Ck_lght3: 




LDA 

TMA_MSB 

/test for dead light osc 


AN- 

#OFh 

/get timer 


0/P 

#0Fh 

,-ck for > OE 


BNE 

Ck_lt3a 

zjunp if not 


LDA 

TMA_LSB 

/get lo byte 


CLC 




SBC 

•EOh 

/ck for > (msb*lsb =OFEO) 


BCS 

Light_£ail 

/bail out if > 

.. 

Ck_lt3a: 




LDA 

Port_D 

/get I/O 


AND 

♦Light_in 

.ck light elk is lo 


BNE 

Ck_lght3 

;wait for it to go lc to insure the elk 

Ck_lght4: 




LDA 

•OOOH 

/re-start timer A 


TA 

TMA_LSb 

/ 


LDA 

• OOOH 

/now CPUCLK/ was »010H = CPUCLK/4 

(Hon) 

STA 

TMA_MSB 

1 


Ck_lght4a: 




LDA 

Port_D 

/get I/O 


AND 

•Light_in 

;ck if still lo 


BEQ 

Ck_lght4a 

/loop till hi 


/ Timer A holds 

count for 

lo peiiod of elk 


Lght4cmp: 




LDA 

TMA_MSB 

/get timer high byte 


AND 

• OOFH 

/ mask out high nybble 


STA 

TEMPi 

/ and save it 


LDA 

TMA_LSB 

/get timer low byte 


STA 

TEMPI 

/ and save it 


LDA 

TKA_MSB 

/get timer A high byte onain 



Page 2 


A-112 



Light5.asm 


AND 

iOOFH 

mask out high nybble 

CMP 

TEMP2 

/ and compare it with last reading 

BNE 

Lghtictrp 

/loop until they're Tual 

; take 12 bit 

timer (2 bytea) 

and move to one byte and trash lo nible 

/ of low byte. 

End up with hi 

8 bits out of 12. 

LDX 

#04 

/loop counter 

Light_byte: 

RQR 

TEMP2 

/get lo bit into carry 

ROR 

TEMPI 

/shuffle down and get carry from TEMP2 

DEX 


/-I 

BNE 

Light_byte 

/loop till done 

Ck_lght4bs 


! 

LDA 

#Intt_dflc 

/Initialize timers, etc. 

STA 

Interrupt* 

/re-establish normal system 

CLI 


/re-enable interrupt 

JSR 

Kick_IRQ 

zwait tor motor R/C to start working again 

CLC 


/clear 

/- now have 

new cour.* in 'TEMPI' 

LDA 

Light_reff 

/get previous sample 

SBC 

TEMPI 

zck against current sample 

BCC 

Ck_lghc5 

/jump if negative 

CLC 

SBC 

•Bright 

zck if difference > reff 

BCS 

Lght_brt 

/go do speech 

JMP 

Kill_ltrf 

/bail out if not 

Ck_lght5: 

CLC 

LDA 

TEMPI 

;try the reverse subtraction 

SBC 

Light_ref£ 

; prev 

BCC 

Kill_ltr£ 

;quit if negative 

CLC 

SBC 

•Dim 

/is diff < reff 

BCC 

Kill_ltrf 

/bail out if not 

Lght_dimi 

LDA 

Stat_3 

z system 

AND 

#Nt_lght_Etat 

/clear 1 it to indicate dark table 

STA 

Stat_3 

/update system 

JMP 

Do_lght 

/go fini 

Lght_brti 

LDA 

Stat_3 

/system 

ORA 

•Lght_atac 

/set bit to indicate light table 

STA 

Stat_3 

/update system 

JMP 

Do_lght i 


Light_£ail/ 

LDA 

#FFh 

zforce lo number so no conflicts 

STA 

TEMPI 


IDA 

•Intt_d£lt 

/Initialize timers, etc. 

STA 

Interrupts 

/re-establish normal si tern 

CLI 


/re-enable interrupt 

JSR 

Kick_IRQ 

/wait for motor R/C to start working again 

JMP 

Kill_ehi£t 

/ret with no req 


Do_lght: 


Page 3 


A-113 




LDA 

Stat_l 

Lights.asm 

;ayatem 


AND 

•Up_light 

;ck if incmnt mode 


BNE 

RaC ahftup 

.•jump if incnmt mode 


LDA 

#Shi£t_re£f 

;set to max 


STA 

Light_shi£t 

l 


JMP 

No It todo 

i 


Rst_shftup: 

INC 

Light_ahift 

!*1 


LDA 

Light_ahift 

i get counter 


CLC 

SBC 

#Shi£t_re£f 

;ck if > max reff count 


BCC 

No_lt_todo 

(junp if < max count 


LDA 

#Shift_reff 

; reaet to max 


STA 

Light_ahift 

» 


LDA 

Stat_0 

;aystem 


AND 

#Lt_prev_dn 

; check if previously done 


BNE 

New_ltreff 

; junp if was 


LDA 

Stat_0 

;system 


ORA 

#Lt_prev_dn 

/set previously done 


STA 

Stat_0 

.■update 


( LDA 

Stat_l 

.-system 


( AND 

#EFh 

:set sytem to shift decrimt mode 


; STA 

Stat_l 

; up '-ate 


LDA 

#Light_reload 

;rese- for next trigger 


STA 

Light_timer 

.-set it 


JMP 

Do_ltchg 

;go announce it 


New_ltref£: 

LDA 

Light_timer 

;get current 


BNE 

No_lt_todo 

.■nothing to do , 


LDA 

TEMPI 

;get new count 


STA 

Light_ref£ 

(update system 


:da 

Stat_l 

.• system 


AND 

#EFh 

(set sytem to shift decrrmt mode 


STA 

Stat_l 

.• update 


LDA 

TEMPI 

.•get current value 


CLC 

SBC 

•Dark_sleep 

(Ck if > sleep level 


BCS 

Ck_drk 

(jump if > 


LDA 

Stat_0 

(system 


AND 

•7Fh 

(kill prev done 


STA 

Stat_0 

(Update 


JMP 

Kill_ltr£ 

1 


Ck_drki 

LDA 

Stat_0 

l system 


AI.D 

#D rk_sleep_prev ;ck if thia wan already done 


BNE 

Kill_ltrf 

(junp if was 


LDA 

Stat_0 

;system 


ORA 

#REQ_dark_aleep 

(set it 


ORA 

#Dark_sleep_prev ;aet also 


STA 

Stat_0 

(update 


Kill_ltr£i 



Page 4 

A-114 



Light5.asm 


1 LDA 

Stat_0 ' 

jeystero 

; AND 

#Lt_prev_dn 

;check if previoualy done 

[ BEQ 

No_lt_‘ odo 

;jun*> if clear 

LDA 

Light_ahi£t 

;get shift counter 

BEQ 

Kill_ahift 

;junv if went zero last time 

LDA 

Stat_l 

jsystem 

AND 

#Up_light 

;ck if incrnnt mode 

BEQ 

Rst_sh£cdn 

;jujn> if decrimt mode 

LDA 

#00 

»aet to min 

STA 

Light_shift 

I 

JMP 

No_lt_todo 

; 

Ret ohftdnt 

DEC 

Light_shi£t 

j-i 

JMP 

No_lt_todo 

(done 

Kill_shi£t s 

LDA 

Stat_0 

/system 

AND 

#FDh 

(dears Lt_prev_dn 

STA 

Stat_0 

(update 

LDA 

Stat_l 

/system 

ORA 

#Up_light 

.-prepare to incrrmt , Light_shift' 

STA 

Stat_l 

(update 

No_lt_todo: 

SEC 

RTS 


,-carry set indicates no light change 


....... alert 

system to start 

speech 

Do_ltchg: 

LDA 

Stat_3 

;system 

AND 

#Lght_stat 

;ck if went light or dark 

BNE 

LT_re£_brt 

(went brighter if set 

LDA 

Stat_4 

(get system 

ORA 

#Do_lght_dim 

(set indicating change < reff level 

JMP 

Ltref_egg 

J 

LT_re£_brt: 

LDA 

Stat_4 

l 

ORA 

#Do_lght_brt 

/set indicating change > reff level 

Ltre£_egg: 

STA 

Stat_4 

(update egg info 

CLC 


(carry clear indicates light > reff 

RTS 


(done 


Page 5 


A-115 







Diag7.asm 


ifttlllllllllllllltllllllllllllllllllllllllltlllllllllllllltllllllltll 

(• 'Diagnostics and calibration Routine • 

i 

l Mods to the diagnostic routines : 

I DIAQ6 s 

i Init memory.voice,name and write EEPRCM before exiting. 

( Diag7i 

» EEprom memory test, reads and writes all locations. 

; On power up if port D woke us. then bypass diagnostics. 

.. 

i refer to self test mode documentation 


............... START 

; 

; Diagnostic EQU's 

Dwait_tilt EQU 02 .-full test waiting for no tilt (step 1) 

Diagnostic: 

1 All speech / motor calls use standard macro routines, except we 
; force the macro directly. Be carefull to load the , MACPO_LO’ and 
; 'MACRO_HI' bytes properly. We use a conroon subroutine to set the macro 
; so 'MACRO_HI' is loaded only once in the subroutine. Be sure the macros 
; are in the same 128 byte block. Initially chose adrs 400 (190) for these 
r diags. 


LEA 

Wam\_cold 

;get startup condition 


CMP 

#lih 

;ck for port D wakeup 


BEQ 

No_Diag 

.•jump if not 


LDX 

#FFh 

i loop counter 


0portD_tst: 

LDA 

Port_D 

.get I/O 


AND 

• 03 

;ck for tilt and invert 


BNE 

No_Diag 

;if either hi then bail out 


DEX 

BNE 

DportD_tst 

»-l 

;loop till done (ckg for Port 

D bounce) 

EDA 

Port_C 

jget I/O 


AND 

•OCh 

;ck for front and back switches made 

BEQ 

Diagl 

lit both not lo then bail out 

else start diag 

No_Piag: 

JMP 

Test_byp 

;no diagnostic request 



Diagl: (Start test 


ll force voice to normal condition while diag is active 


LDA 

• 9 

j ,-Tracker add for constant 

STA 

Rvoice 

; .-Tracker add 

LDA 

•0 

(hi beep for start of test 

JSP. 

Diag_macro 

.•go send motor/speech 

wait for front 

Sc back to clear 


LDA 

Port_C 

.•get I/O 


Page 1 


A-U6 





AND 

#0Ch 

Diag7.asm 

;get keys 


CMP 

•OCh 

I trust be both hi 


BNE 

Diagl 

(wait till are 


New_top: 

LDA 

#03 

.•set delay for switch bounce 


JSR 

Half_delay 

lx • delay 


Diag2a: 

;proas front 

key t go to EEPRCM test 


LDA 

Po rt_C 

;get I/O 


AND 

#Touch_fmt 

l wait for switch 


BNE 

Diag2b 

;go ck if next test is requesting 


LDA 

#01 

(hi beep for start of test 


JSR 

Diag_macro 

;go send nutor/speech 


Diag2al: 

LDA 

Port_C 



AND 

BEQ 

#Touch_fmt 

Diag2al 



; EEPROM WRITE 

; inic ram as 1 

,2,3.4,5. 

to 26 


LDA 

#01H 

; data for fill 


LDX 

•Age 

i start at ram location 


RAMset: 

STA 

00,X 

; base 00. offset x 


CLC 

ADC 

#01 

;inc Acc 


INX 

CPX 

#Age»26 

s next ram location 
i check for end 


BNE 

RAMset 

branch, not finished 


JSR 

Do_EE_write 

; fill done 

;write the EEPRCM 


JSR 

S ~EPROM_F.EAD 

.-read data to ram 


LDA' 

*00 

.■clear 


STA 

Task_ptr 

t 


LDX 

•Age 

i start at ram location 


RAMtest: 

LDA 

00.X 

base 00, offset X 


CLC 

ADC 

Task_ptr 

> 

.-running CRC 


STA 

Taok_ptr 

l running total 


INX 

CPX 

#Age»26 

,- next ram location 
.- check for end 


BNE 

RAMtest 

! branch, not finished 


LDA 

Task_ptr 

(get result 


CMP 

• 5Fh 

,-matching CRC (actual total is 15Fh ) 


BNE 

EEfail 

,-jurtp if bad 


EEpaaa: 

LDA 

#02 

(beep to signal good test 


STA 

Feed_count 

(Use as tenp storage 


JMP 

EEdone 

(send sounds 


EEfail 1 

LDA 

#03 

,-beep indicates failure 


STA 

Feed_count 

(temp storage 


EEdonei 



Page 2 

A-117 



Diag7.asm 


CLI 


enable IRQ 

JSR 

Kick_IRQ 

;wait for time: e-sync 

JSR 

TI_reset 

.•clear TI from 

I LA 

Feed_count 

;get lo byte of macro to call 

JSR 

Diagjnacro 

.•go send motor/speech 

Diag2b: 

» Speaker tone 

/ I.R. xmit 

LDA 

Port_C 

.get I/O 

AND 

#Touch_bck 

;weit for switch 

BMC 

Diag2c 

;go check if next test is requesting 

LDA 

#1 

;hi beep for start of test 

JSR 

rtag_macro 

igo send motor/speech 

Diag2blp: 

LDA 

Port_C 


AND 

#Touch_bck 


BEQ 

Diag2blp 


Diag2bl: 

LDA 

#04 

.•send long tone (lk sinewave) 

JSR 

Diag_macro 

.-go send motor/speech 

LDA 

Port_C 


AND 

#Touch_bck 

.•mask for back switch 

BNF 

Diag2bl 

■•loop until back switch pressed 

Xmit_lp: 

LDA 

•01 

; beep 

JSR 

Diag_macro 

;go send motor/speech 

; LDA 

Port_C 


; AND 

#Touch_bck 

.•mask for back switch 

( BNE 

Xmit_lp 

;loop until back switch pressed 

LDA 

#05h 

.■send "S’ to I.R. xmiter 

STA 

TEMP2 

J 

LDA 

#FDh 

I send conroand I.R, to TI 

STA 

TEMPI 

; 

JSR 

Xmit_TI 

;send it 

dumb: LDA 

Port_C 

jget I/O 

AND 

#Touch_bck 

/wait for switch 

BNE 

dumb 

;waic for back to be pressed 

dumber: LDA 

Port_C 

»get I/O 

AND 

#Touch_fmt 

;ck switch 

BEQ 

Next_l 


JMP 

Xmit_lp 


Next_l: LDA 

#2 

jhi beep for start of test 

JSR 

Diag_macro 

;go send motor/speech 

LDA 

Port_C 

iget I/O 

AND 

•OCh 

ck for front and back switches made 

BEQ 

Next_l 

;if both not lo then bail out else start drag 

JMP 

New_top 


; Full cast starts here 


Diag2c: LDA 

Port_D 

(get I/O 

AND 

•Bali_invert 

(wait for switch 

BNE 

Diag2d 

(onward if key pressed 


Page 3 


A-1JS 




Diag7 .asm 


JMP Diag2a ;loop back Co Cop i£ none 

Diag2d: 

LDA *01 ;hi beep for scare of CesC 

JSR Diag_raacro ;go send motor/speech 

; FULL TEST MODE 

DiagFl: /wait for no cilc Co scare full diag 

LDA »Dwait_tilt ;set delay Co be sure no CllCs 
STA TEMPI ; 

DiagFla: 

LDA Port_D 

AND *3 

BNE DiagFl 

:c TEMPI 

dNE DiagFla 

LDA #2 ,-pass beep 

JSR Diag_macro ;go send motcr/speech 

i 

DiagF2 /test Cilt 45 deg 

LDA PorC_C 

AND *00001100b 

CMP #0CH 

BEQ DiagF22 

LDA *3 / fail beep 

JSR Diag_macro / 

DiagF22: 

LDA K.iC_B 

AND #2 

BEQ DiagF23 

LDA #3 / fail beep 

JSR Diag_macro / 

DiagF23: 

LDA Port_D .-get I - 0 

AND »Ball_side ;ck for cilc switch (hi « cilted) 

BEQ DiagF2 ,-wait for cilc 

LDA Port_D ;get I/O 

AND »Ball_invert jck if invert sw made 

BNE DiagF2a /jump to error if so 

LDA Port_C ;get I/O 

AND #0Ch ;get front U back 

CMP »0Ch /must be hi else error 

BEQ DiagF2b ;if hi then pass 

DiagF2a: 

LDA #3 .-fail beep 

JSR Die jjnacro ;go send motor/speech 

JMP DiagF2 .-loop till no error 

DiagF2b: 

LDA 12 .-pass beep 

JSR Diag_macro ;go send motor/speech 

DiagF2c: ,-wait for no tilt before continuing 


Page 4 


A-119 




Diag7.asm 


LDA Port_C 

AND #Touch_bck 

BEQ DiagF3b 


LDA 

Port_D 

;get I/O 

AND 

#Ball_side 

;ck for tilt switch (hi « tilted) 

BNE 

DiagF2c 

/wait for no tilt 

/DANGER 



; LDA 

Port_C 

/get I/O 

/ AND 

#Touch_f mt 

zck switch 

/ BEQ 

DiagF3 

/ no other switch can be made here else error 

1 JMP 

DiagF23 

/ allow multiple checks 

DiagF3i 

;test back switch 

; LDA 

Port_C 

/get I/O 

; AND 

#Touch_bck 

/wait for switch 

/ BEQ 

release 

/loop if hi (touch is not pressed) 

JMP 

DiagF23 


release/ 



LDA 

Port_C 

/get I/O 

AND 

#Touch_fmt 

zck switch 

BEQ 

DiagF3a 

/no other switch can be made here else error 

LDA 

Port_D 

/get I/O 

AND 

*C3 

zck for tilt and invert 

BEQ 

DiagF3b 

lit either hi then error else continue 

DiagF3az 



LDA 

#3 

/fail beep 

JSR 

Die g_rnacro 

/go send motor/spt -ch 

JMP 

DiagF3 

/loop till nc error 

DiagF3b: 



LDA 

•2 

/pass beep 

JSR 

Diag_macro 

zgo send motor/speech 

DiagF4: 



LDA 

Port_C 

/get I/O wait for front to clear 

AND 

»Touch_fmt 

zck switch 

BEQ 

DiagF4 

/if pressed then wait for release 

/ Send motor 

forward until 

front switch pressed 

LDA 

Stat_2 

/get system 

ORA 

#Motor_fwd 

•set « motor fwd (inc) 

ORA 

•Motor_actv 

/set motor in motion 

STA 

Stat_2 

/update system 

LDA 

Stat_3 

/get current status 

ORA 

•Motor_off 

/turn both motors off 

AND 

#Motcr_fwds 

/move motor in fwd dir 

STA 

Stat_3 

l update 

DiagF4alt 



LDA 

Port_C 

z get I/O w. t for front 

AND 

#Touch_fmt 

/ck swit 

BEQ 

DiagF4a2 

/got it 

JMP 

DiagF4al 

zloop ti.l found 


; Send motor reverse until front switch pressed 


Page 5 


A-120 




Diag7.asm 


DiagF4a2: 


i 

LDA 

Port_C 

;gec I/O waic for fronC Co clear 

AND 

#?ouch_fmt 

;ck awicch 

BEQ 

DiagF4a? 

>if preaaed Chen waic for releaae 

LDA 

Sea- _2 

.-get ayacem 

AND 

#Motor_rev 

;clear fwd flag 

ORA 

#Mocor_accv 

;aec mo cor in mocion 

STA 

SCaC_2 

jupdace system 

LDA 

Stat_3 

;gec current status 

ORA 

»Motor_off 

••turn both motors off 

AND 

#Motor_revs 

move motor in rev dir 

STA 

Stat_3 


DiagF4a3: 



LDA 

Porc_C 

.•get I/O waic for front 

AND 

•Touch_fmc 

;ck switc' 

BEQ 

DiagF4a4 

;got it 

JMP 

DiagF4a3 

■•loop till found 

I Send motor 

end to end and scop on cal sw, else error 

DiagF4a4: 



LDA 

SCaC_3 

.-get currenc sCaCus 

ORA 

#Motor_off 

[Cum boch motors off 

STA 

Scac_3 

.-update 

LDA 

SCaC_2 

;gec system 

AND 

#Mocor_inactv 

/clear aceiv flag 

STA 

SCaC_2 

.-update system 

LDA 

#5 

.-start -notor test 

JSR 

Diag_macro 

;go 

LDA 

#33 

.-set delay for motor tc stop 

JSR 

Half_delay 

* half sec delay 

; LDA 

Porc_C 

.-get I/O 

( AND 

•Mocor_cal 

;lo when hit 

BNE 

DiarF4b 

,-no position switch found 

LDA 

#2 

.-pass beep 

JSR 

Diag_macro 

;go send it 

JMP 

DiagFS 

.- done 

DiagF4b: 



LDA 

>3 

(fail beep 

JSR 

Diag_macro 

.-go send it 

DiagFS: 

;Bend moCor Co 

mouth open for feed sw test 

LDA 

Port_C 

.-get I/O 

AND 

•Touch_fmc 

.-wait for switch 

BNE 

DiagFS 

,- loop 

LDA 

#6 

.-feed position 

JSR 

Diag_macro 

.-send it 

DiagF6i 



; ck for feed 

aw, all ocher sw 

» error 

; Remember Co 

ceac inverc before seccing feed aw cesc, else conflicc 

LDA 

#00 


STA 

DAC2 

.-cle*- teed sw enable 

LDA 

Porc_C 

.-get I/O 

AND 

#0Ch 

,-ck for front and back switches made 

CMP 

#0Ch 

;ck both are clear 

BNE 

DiagF6a 

.-wait till are 


Page 6 


A-121 



Diag7.asm 



LDA 

Port_p 

;get I/O 


AND 

*03 

(ck f . tile and -nvert 


BNL 

DiagF i 

■if »ither hi then wait till clear 

JMP 

DiagF6a: 

DiagF6b 

:jun when all clear 


LDA 

#3 

.•fail beep when any ocher switch made 


JSR 

Diag_macro 

■•send it 

JMP 

DiagF6b: 

DiagF6 

i loop 

/mod 

diag6 ; 

inc random number 

seeds until feed switch down 


INC 

Seed_l 

.-create random based on switches 


LDA 

TMA_LSB 

.•get timer A also (should be unknown) 

; end 

STA 

mod 

Seed_2 

.save it 


LDA 

•FFh 

/turn DAC2 on to enaule feed switch 


STA 

DAC2 

/out 


LDA 

Port _D 

.get I/O 


AND 

#Ball_invert 

;ck if feed switch closed 


BEQ 

LDA 

DiagF6 

*00 

/loop until switch closed 


STA 

DAC2 

.■clear feed sw enable 


LDA 

#7 

.■pass beep 


JSR 

Diag_macro 

;go send motor/speech 

DiagF7: 

;Light sensor test 

;rocd 

Co condensate for new light sense routine 

; 

LDA 

*00 

.•clear light timer to force new reff cycle 

t 

STA 

Light_tiroer 

:set it 

; 

LDA 

Stat_3 

,-get system 

; 

ORA 

#LC_re££ 

.•make this pass a new light reff 

i 

STA 

Stat_3 

;update 


JSR 

aet_lighc 

;go get light level, establish 1st level 


LDA 

Stat_4 



AND 

*Nt_do_lt_dim 

.-clear indicating change > reff level 


STA 

Stat_4 

I update system 


JSR 

OeC_light 

;go get light level Bangle 


LDA 

TEMPI 

jget new count 


STA 

Light_re£f 

.-update system 


Diag.7a: 




JSR 

Qet_light 

»go get again and test for lower level 


LDA 

Stat_4 

;get system 


AND 

•Do_lght_dim 

/check if went dinner 


BEQ 

DiagF7a 

/loop if no change 


LDA 

• 8 

/pass beep and motor motion 


JSR 

Diag_macro 

/send it 

DiagFB: 


.-Sound sensor 

test 


LDA 

*00 

/clear sound timer to force new reff cycle 


STA 

Sound_timer 

.set 


LDA 

Stat_l 

.•get system again 


ORA 

»Snd_re££ 

/make this pass a new sound reff 


Page 7 


A-12+ 



Diag7.asm 


STA 

Stat_l 

.-update 

JSR 

Oet_sound 

;go get light level, establish 1 st level 

LDA 

Stat_4 

/ 

AND 

•Nt_do_snd 

.-clear indicating change > reff level 

STA 

Stat_4 

.-update system 

DiagFBa: 



JSR 

Oet_sound 

jgo get again and test for lower level 

LDA 

Stat_4 

/get system 

ANJ 

•Do and 

.-check if went louder 

BEQ 

DiagFBa 

.-loop if no change 

LDA. 

•9 

.-pass beep and motor motion 

JSR 

Diag_jnacro 

.-send it 

/ 

DiagF9: 

;wait for I.R. 

data received 

LDX 

•10 

.-.-Tracker change, orginal is 100 

DiagF9al: 



LDA 

#1 


JSR 

Half delay 


DEX 



BN’E 

DiagF9al 


JSR 

D_IR_test 

.-go ck for data 

BCC 

DiagF9 

,-,-loop until data receive 

CMP 

#A5H 

.-is it the expected data 

BNE 

DiagF9a 

.-jump if wrong data 

LDA 

• 1 

/pass beep and motor motion 

JSR 

Diag_macrc 

/send it 

JMP 

DiagFlO 

z done 

DiagF9a: 



LDA 

• 3 

,-fail beep and motor motion 

JSR 

Diag_macro 

,- send it 

DiagFlO: 

.-all tests complete, send to sleep node 

LDA 

• 10 

; 

JSR 

Half_delay 

t 

LDA 

• 10 

,-put furby in sleep postion 

JSR 

Diag_macro 

.-send it 

, Clear RAM to 

00H 


; we dont clear Seed_l or Seed. 

.2 since they are randomized at startup. 

LDA 

•00H 

i data for fill 

LDX 

•D7h 

; start at ram location 

Clear: 



STA 

00,X 

; base 00. offset x 

DEX 


l next ram location 

CPX 

• 7FH 

; check for end 

BNE 

Clear 

l branch, not finished 

,- Random voice 

selection here 


LDA 

•80h 

;get random/sequential split 


Page 8 


A-123 





D-ag7.esm 


STA 

IN_DAT 

.-save for random routine 

LDX 

•00 

,-moke sure only gives random 

LDA 

•lOh 

;get number of random selections 

JSR 

Ran_»eq 

igo get random selection 

TAX 

LDA 

Voice_toble,X 

jget new voice 

STA 

Rvoice 

;set new voice pitch 


On power up 

JSR 

AND 

STA 

or reset. Furby nust go select a new name ,,, ahw how cute. 

Random 1 

•lFh .-get 32 possible 

Name .-set new name pointer 

LDA 

•FFh 

,- insure not hungry or sick 

STA 

' 'ungry_counter 

.-max not hungry 

STA 

.ck_o-unter 

.-Max not sick 

Clear training or all sensors 


LDA 

#00 


STA 

"ai.p_ID 


STA 

Tenp_ID2 


STA 

Tilt_leamed 


STA 

Tilt_lm_cnt 


STA 

Feed_leamed 


STA 

Feed_lm_cnt 


STA 

Light_learned 


STA 

Light _lm_cnt 


STA 

Dark_leamed 


STA 

D»rk_lm_cnt 


STA 

Front_learned 


STA 

Front_l m_cnt 


STA 

Sound_learned 


STA 

Sound_lm_cnt 


STA 

Wake_leamed 


STA 

Wake_lm_cnt 


STA 

Invert_learned 


STA 

Ir.vert_lm_cnt 


JMP 

OoToSleep 

.-write ee memory YO • 


Page 9 


A-124 










; Furby27.inc ;; change twinkle egg song to one pass in macro 


Lowered voice+10,voice+9 to voice»8 
Wayne 1 s mods: 

Furby5b.inc = add voice selection table 
Dave'e 

added feed (mouth open) 

170,171,173,174,175,182,183,190,191,194 
mod foi ir 
NOW 24 NAMES 


TABLES 

MACRO 

SAY 




FRONT 

2-64 

1-61 




FORTUNE 

65-83 

b2-78 




o-too-mah 

84 





HANGOUT 

85-101 

79-106 




delay 

102 

l 1 ' - ’ 




FEED 

103-145 

108-123 




WAKE 

146-169 

124-156 




HUNGER 

170-201 

157-166 




INVERT 

202-238 

169-192 




BACK 

239-275 

193-236 




SICK 

276-292 

237-250 




LIGHT 

293-307 

251-265 




DARK 

308-331 

266-289 




SOUND 

332-351 

290-309 




TILT 

352-392 

310-350 




IR 

393-429 

351-390 




FURBY SAYS 

430-434 

50 TICKLE,196 

PET.71 SOUND,391 

LIGHT,196 F 


435,436 

392 NO LIGHT, 

393 LOUD SOUND 



437,436 

115,116 

• 

* 

hide and seek sounds 


95,96,97 

98,99,100 

• 

hide and seek reuse 


439 


1 

iurby says 

win sound 

Diagnostic 

440-450 

400-410 





451,452 

117,118 

t 

hide and seek sounds 

Names 

453 

399,395,110 

1 

me koko 

(more) 


454 

399,395,396 

• 

1 

me sieme 

(very) 


455 

399,395,112 

J 

roe e-day 

(good) 


456 

399,395,397 

e 

me do-moh 

(please) 


457 

395,395,114 

• 

• 

me toh-dye 

(done) 


458 

399,395,117 

; 

me boo 

(no) 


459 

399,395,398 

i 

me toh-loo 

(like) 


460 

399,335.120 

j 

me ay-tay 

(hungry) 



399 

; 

delay 1.3 seconds 


461 

399,395,131 

i 

me way-loh 

(sleep) 


462 

399,395,143 

* 

me u-tye 

(up) 


463 

399,395,145 

; 

me ay-loh 

(light) 


464 

399,395,152 

i 

me kah 

(me) 


465 

399,395,166 

i 

me dah 

(big) 


466 

399,395,175 

; 

me boh-bay 

(worry) 


467 

399,395,177 

s 

t 

me nah-bah 

(down) 

NEW EASTER 

EGGS 






468 

DODLE DO, ME 

LOVE 

YOU 



469 

SING A SONG 





470 

BURB ATTACK 





471 


1 

furby says 

win sound 


472 

46 

1 

furby says 

lose sound 






1 

473 

153,123 

> 

me 

done (leaving any game) 

1 

474 

394 

> 

LISTEN ME 


; 

475 

1 411 

J 

HIDE ME (hide and seek) 

; 

; MORE NAMES 


| 412 

: 

aaah.aaah,aaah feed dmh 

476 

399,395,186 

i 

me 

loo-loo 

(joke) 

1 

1 

477 

399,395,194 

) 

me 

ah-may 

(pet) 

1 

478 

399,395,201 

t 

me 

noo-loo 

(happy) 

! 

479 

399,195,208 

• 

* 

me 

may-may 

(love) 

1 

480 

359,375,224 

e 

f 

me 

may-lah 

(hug) 

1 

481 

399,3.5,228 

• 

• 

me 

dah-noh- 

-lah (big dance) 

1 

482 

39S,395,398,152 

• 

* 

me 

toh-loo- 

■ka (like me) 

1 

483 

399,395,152,166 


me 

ka-da 

(me big) 

1 

1 

;not used 

484 

399,395,224.152 

• 

# 

me 

may-lah- 

-ka (hug me) 

476-511 | 

1413-510 






; TRAP FOLLOW MACROS FOR NAME 

; SENSOR 
I HANGOUT 97 
; WAKE-UP 149 
; BACK 248 
; LIGHT BRIGHT 305 
; IR 393.404.414,421 

; GAMES 

; FORTUNE 69,77 
; HIDE AND SEEK 475 
; FURBY SAYS 474 


I end trap macros for name 


; reused ; reused ; reused ; reused 
,• 72,380 | 

; 15 115 

; 1395 

;DANCE 407,416 


;not used 


367,376 

396-399 


reused 

; furby says win sounds 
i LAUGH 

; me (for use with names) 

; reused for dance easter egg 


; Sensor tables 

; Each sensor has 4 speech/motor tables based on age 1-4, of 16 entries 
each. 

; These tables r .re 16 bit entries, the user enters as a decimal 1-511 
• *••• ‘00 1 is illegal **** 

; This number calls the MACRO tables to get specific speech and moto: 

; tables. MACRO tables chain together multiple motor and speech tables. 
; The first 8 entries of speech is random selections and 
; the second 8 entries is sequential. 


one of three voice pitci. selections, randomly load table and 
table is randomly called on power up to select a new voice. 

THis gives a number added to voice 3 to create which voice will be 


A-127 





used. 


Voice_table: 


DB 

S_voicel 

DB 

S_voice2 

DB 

S_voice3 

DB 

S_ oicel 

DB 

S_voice2 

DB 

S_voice3 

DB 

S_voicel 

DB 

S_voice2 

DB 

S_voice3 

DB 

S_voicel 

DB 

S_voice2 

DB 

S_voice3 

DB 

S_voicel 

DB 

S_voice2 

DB 

S_voice3 

DB 

S_voicel 


; Bal 1 

tilt sensor table 


;DO TILT 




Tilt_ 

SI: 

DW 

352 

• 1 



dw 

353 

*2 



DW 

354 

»3 



DM 

352 

• 4 



DW 

355 

#5 



DW 

356 

*6 



DW 

357 

*7 



DW 

358 

*8 



E 

359 

#9 



DW 

360 

*10 



DW 

361 

*11 



DW 

362 

*12 



DW 

363 

*13 



DW 

352 

*14 



DW 

364 

• 15 



DW 

365 

• 16 

Tilt. 

,S2: 

DW 

366 

• 1 



DW 

367 

*2 



DW 

366 

*3 



DW 

355 

*4 



DW 

368 

15 



DW 

357 

• 6 



DW 

369 

*7 



DW 

370 

• 8 



DW 

359 

*9 



DW 

360 

*10 



DW 

371 

*11 



DW 

372 

*12 



DW 

373 

*13 



DW 

374 

*14 



DW 

355 

*15 



DW 

37 c 

*16 

Tilt. 

.S3: 

DW 

36c 

*1 



DW 

355 

12 


AGE 1 
AGE 1 
AGE 1 
AGE I 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 
AGE 1 

AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 
AGE 2 

AGE 3 
AGE 3 


A-J28 




Tilt_S4: 


SickSl: 


Sick_S2: 


DW 

376 

; 

13 

AGE 3 

DW 

377 

; 

14 

AGE 3 

DW 

378 

; 

• 5 

AGE 3 

DW 

379 

• 

16 

AGE 3 

DW 

380 

• 

•7 

AGE 3 

DW 

381 

• 

18 

AGE 3 

DW 

382 

; 

• 9 

AGE 3 

DW 

383 

; 

110 

AGE 3 

DW 

384 

i 

111 

AGE 3 

DW 

385 


112 

AGE 3 

DW 

365 

• 

113 

AGE 3 

DW 

375 

t 

114 

AGE 3 

DW 

363 


• 15 

AGE 3 

DW 

386 

: 

116 

AGE 3 

DW 

366 


■ 1 

AGE 4 

DW 

355 

• 

• 2 

AGE 4 

DW 

387 

; 

13 

AGE 4 

DW 

377 


14 

AGE 4 

DW 

388 

l 

15 

AGE 4 

DW 

389 

; 

16 

AGE 4 

DW 

380 

; 

17 

AGE 4 

DW 

381 

; 

18 

AGE 4 

DW 

382 

• 

• 9 

AGE 4 

DW 

383 

; 

• 10 

AGE 4 

DW 

390 

; 

• 11 

AGE 4 

DW 

385 

; 

• 12 

AGE 4 

DW 

391 


• 13 

AGE 4 

DW 

375 


• 24 

AGE 4 

DW 

384 

; 

• 15 

AGE 4 

DW 

392 

• 

• 16 

AGE 4 


DW 

276 

#1 

AGE 1 

DW 

280 

12 

AGE 1 

DW 

283 

13 

AGE 1 

DW 

286 

■ 4 

AGE 1 

DW 

288 

• 5 

AGE 1 

DW 

288 

• 6 

AGE 1 

DW 

289 

• 7 

AGE 1 

DW 

290 

18 

AGE 1 

DW 

291 

• 9 

AGE 1 

DW 

292 

• 10 

AGE 1 

DW 

288 

• 11 

AGE 1 

DW 

288 

• 12 

AGE 1 

DW 

289 

• 13 

AGE 1 

DW 

290 

• 14 

AGE 1 

DW 

291 

115 

AGE 1 

DW 

292 

116 

AGE 1 


DW 

277 

; *1 

AGE 2 

DW 

280 

; »2 

*GE 2 

DW 

284 

; *3 

AGE 2 

DW 

286 

; 14 

AGE 2 

DW 

288 

1 »5 

AGE 2 

DW 

288 

; 16 

AGE 2 

DW 

289 

; »7 

AGE 2 

DW 

290 

; *s 

AGE 2 


A-129 




DW 

291 

•9 AGE 2 

DW 

292 

»10 AGE 2 

DW 

286 

111 AGE 2 

DW 

288 

112 AGE 2 

DW 

289 

•13 AGE 2 

DW 

290 

114 AGE 2 

DW 

291 

•15 AGE ' 

DW 

292 

•16 AC* 2 


Sick_S3: 

DW 

276 

• 1 

AGE 3 

DW 

281 

• 2 

AGE 3 

DW 

285 

• 3 

AGE 3 

DW 

287 

• 4 

AGE 3 

DW 

288 

• 5 

AGE 3 

DW 

288 

• 6 

AGE 3 

DW 

289 

• 7 

AGE 3 

DW 

290 

• 8 

AGE 3 

DW 

291 

• 9 

AGE 3 

DW 

292 

• 10 

AGE 3 

DW 

288 

■ 11 

AGE 3 

DW 

288 

• 12 

AGE 3 

DW 

289 

• 13 

AGE 3 

DW 

290 

• 14 

AGE 3 

DW 

291 

• 15 

AGE 2 

DW 

292 

• 16 

AGE 3 


Sick_S4: 

DW 

279 

• 1 

AGE 4 

DW 

282 

• 2 

AGE 4 

DW 

285 

• 3 

«3E 4 

DW 

287 

• 4 

AGE 4 

DW 

288 

• 5 

AGE 4 

DW 

288 

• 6 

AGE 4 

DW 

289 

• 7 

AGE 4 

DW 

290 

18 

AGE 4 

DW 

291 

• 9 

AGE 4 

DW 

292 

• 10 

AGE 4 

DW 

288 

• 11 

AGE 4 

DW 

288 

• 12 

AGE 4 

DW 

289 

113 

AGE 4 

DW 

290 

■ 14 

AGE 4 

DW 

291 

• 15 

AGE 4 

DW 

292 

• 16 

AGE 4 


; SWITCH 

FOR 

DO SOUND1 js 



Sour.cLSl 

DW 

332 

• 1 

AGE 1 


DW 

333 

• 2 

AGE 1 


DW 

334 

■ 3 

AGE 1 


DW 

335 

• 4 

AGE 1 


DW 

336 

• 5 

AGE 1 


DW 

337 

• 6 

AGE 1 


DW 

338 

• 7 

AGE 1 


DW 

339 

18 

AGE 1 


DW 

332 

• 9 

AGE 1 


DW 

333 

no 

AGE 1 


DW 

334 

• li 

AGE 1 


A-130 








DW 

335 

• 12 

AGE 


DW 

336 

• 13 

AGE 


DW 

337 

114 

AGE 


DW 

338 

• 15 

AGE 


DW 

339 

• 16 

AGE 

Sound_S2: 

DW 

332 

• 1 

AGE 


DW 

333 

• 2 

AGE 


DW 

340 

13 

AGE 


DW 

341 

• 4 

AGE 


DW 

342 

• 5 

AGE 


DW 

337 

16 

AGE 


DW 

343 

• 7 

AGE 


DW 

344 

• 8 

AGE 


DW 

332 

• 9 

AGE 


DW 

333 

• 10 

AGE 


DW 

340 

• 11 

AGE 


DW 

341 

• 12 

AGE 


DW 

342 

*13 

AGE 


DW 

337 

• 14 

AGE 


DW 

343 

• 15 

AGE 


DW 

344 

• 16 

AGE 

Sound_S3: 

DW 

332 

#1 

AGE 


DW 

333 

*2 

AGE 


DW 

345 

• 3 

AGE 


DW 

346 

• 4 

AGE 


DW 

342 

• 5 

AGE 


DW 

337 

• 6 

AGE 


DW 

347 

• 7 

AGE 


DW 

339 

• 8 

AGE 


DW 

332 

• 9 

AGE 


DW 

333 

*10 

AGE 


DW 

345 

• 11 

AGE 


DW 

346 

• 12 

AGE 


DW 

342 

• 13 

AGE 


DW 

337 

• 14 

AGE 


DW 

347 

• 15 

AGE 


DW 

339 

• 16 

AGE 

Sound_S4: 

DW 

348 

• 1 

AGE 


DW 

333 

• 2 

AGE 


DW 

349 

13 

AGE 


DW 

346 

• 4 

AGE 


DW 

342 

• 5 

AGE 


DW 

350 

• 6 

AGE 


DW 

347 

*7 

AGE 


DW 

351 

• 8 

AGE 


DW 

348 

• 9 

AGE 


DW 

333 

• 10 

AGE 


DW 

349 

*11 

AGE 


DW 

346 

• 12 

AGE 


DW 

342 

*13 

AGE 


DW 

350 

• 14 

AGE 


DW 

347 

• 15 

AGE 


DW 

351 

116 

AGE 


1 

1 

1 

1 

1 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

2 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

4 
4 


A-131 





DO HUNGER 


Hunger_Sl: 


Hunger_S2: 


Hunger_S3: 


Hunger_S4: 


DW no 

DW 1"3 

DW 176 

DW 180 

DW 182 

DW 173 

DW 165 

DW 189 

DW 193 

DW 194 

DW 173 

DW 195 

DW 189 

DW 193 

DW 194 

DW 199 


DW 171 

DW 174 

DW 177 

DW 181 

DW 183 

DW 174 

DW 186 

DW 190 

DW 193 

DW 194 

DW 174 

DW 196 

DW 190 

DW 193 

DW 194 

DW 200 


DW 172 

DW 174 

DW 178 

DW 181 

DW 184 

DW 175 

DW 187 

DW 191 

DW 193 

DW 173 

DW 175 

DW 197 

DW 191 

DW 193 

DW 173 

DW 200 


DW 171 
DW 175 


•1 AGE 1 
#2 AGE 1 
*3 AGE 1 
•4 AGE 1 
*5 AGE 1 
#6 AGE 1 
*7 AGE 1 
•8 AGE 1 
*9 AGE 1 
•10 AGE 1 
*11 AGE 1 
»12 AGE 1 
*13 AGE 1 
*14 AGE 1 
*15 AOF 1 
*16 AGE 1 


fcl AGE 2 
*2 AGE 2 
*3 AGE 2 
*4 AGE 2 
#5 AGE 2 
#6 AGE 2 
*7 AGE 2 
*8 AGE 2 
*9 AGE 2 
*10 AGE 2 
*11 AGE 2 
•12 AGE 2 
*13 AGE 2 
*14 AGE 2 
»l r AGE 2 
•16 AGE 2 


I *1 AGE 3 
; *2 AGE 3 
; *3 AGE 3 
; 14 AGE 3 
; *5 AGE 3 
; *6 AGE 3 
; *7 AGE 3 
; *8 AGE 3 
; *9 AGE 3 
; *10 AGE 3 
; *11 AGE 3 
; *12 AGE 3 
; *13 AGE 3 
; *14 AGE 3 
I *15 AGE 3 
; *16 AGE 3 


; *1 AGE 4 
; *2 AGE 4 


A-132 







DW 

179 

; *3 

AGE 4 

DW 

181 

; *4 

AGE 4 

DW 

184 

; *5 

AGE 4 

DW 

175 

1 *6 

AGE 4 

DW 

188 

} *7 

AGE 4 

DW 

192 

. *8 

AGE 4 

DW 

194 

; *9 

AGE 4 

DW 

193 

*10 

AGE 4 

DW 

174 

; *11 

AGE 4 

DW 

198 

; *12 

AGE 4 

DW 

192 

; *13 

AGE 4 

DW 

193 

; *14 

AGE 4 

DW 

194 

; *15 

AGE 4 

DW 

201 

; *16 

AGE 4 


; Fortune teller game 
,-GEORGE 07/04/98 
Fortyes_Sl: 

DW 065 
DW 066 
DW 067 
DW 068 
DW 069 
DW 070 
DW 071 
DW 072 
DW 073 
DW 074 
DW 075 
DW 076 
DW 077 
DW 078 
DW 079 
DW 080 

Fortyes_S2; 

DW 081 
DW 082 
DW 083 
DW 065 
DW 066 
DW 067 
DW 068 
DW 069 
DW 070 
DW 071 
DW 072 
DW 073 
DW 074 
DW 075 
DW 076 
DW 077 

;END FORTUNE 
;END GEORGE 07/04/98 


MACRO 65-83,SAY 62-78 


»1 AGE 1 
*2 AGE 1 
*3 AGE 1 
*4 AGE 1 
*5 AGE 1 
#6 AGE 1 
*7 AGE 1 
*8 AGE 1 
*9 AGE 1 
*10 AGE 1 
*11 AGE 1 
*12 AGE 1 
*13 AGE 1 
*14 AGE 1 
*15 x»GE 1 
*16 AGE 1 


*1 AGE 2 
*2 AGE 2 
*3 AGE 2 
*4 AGE 2 
*5 AGE 2 
*6 AGE 2 
*7 AGE 2 
*8 AGE 2 
*9 AGE 2 
*10 AGE 2 
•11 AGE 2 
*12 AGE 2 
• n AGE 2 
*14 AGE 2 
*15 AGE 2 
*16 AGE 2 


; 


A-133 






;touch £ront sensor table 
;GEORGE 07/03/98 MACRO 2-64,SAY 1-61 


Tfrnt_Sl: DW 

002 

tl 

AGE 

1 

DW 

003 

• 2 

AGE 

1 

DW 

004 

• 3 

AGE 

1 

DW 

005 

(4 

AGE 

1 

DW 

006 

• 5 

AGE 

1 

DW 

007 

*6 

AGE 

1 

DW 

0^8 

• 7 

AGE 

1 

DW 

0 9 

18 

AGE 

1 

DW 

10 

*9 

AGE 

1 

DW 

11 

«10 

AGE 

1 

DW 

« 12 

*11 

AGE 

1 

DW 

013 

*12 

AGE 

1 

DW 

014 

*13 

AGE 

1 

DW 

015 

*14 

AGE 

1 

DW 

016 

#15 

AGE 

1 

DW 

017 

#16 

AGE 

1 

T£rnt_S2: DW 

018 

#1 

AGE 

2 

DW 

019 

• 2 

AGE 

2 

DW 

020 

#3 

AGE 

2 

DW 

021 

*4 

AGE 

2 

DW 

022 

#5 

AGE 

2 

DW 

023 

#6 

AGE 

-> 

DW 

024 

#7 

AGE 

2 

DW 

025 

18 

AGE 

2 

DW 

026 

#9 

AGE 

2 

DW 

027 

• 10 

AGE 

2 

DW 

026 

• 11 

AGE 

2 

DW 

029 

#12 

AGE 

2 

DW 

030 

• 13 

AGE 

2 

DW 

031 

#14 

AGE 

2 

DW 

032 

#15 

AGE 

2 

DW 

033 

#16 

AGE 

2 

T£rnt_S3: DW 

034 

• 1 

AGE 

3 

DW 

035 

1 . 

AGE 

3 

DW 

036 

#3 

AGE 

3 

DW 

037 

• 4 

AGE 

3 

DW 

038 

#5 

AGE 

3 

DW 

039 

#6 

AGE 

3 

DW 

040 

#7 

AGE 

3 

DW 

041 

025 

• 8 

AGE 

DW 

002 

#9 

AGE 

3 

DW 

042 

#10 

AGE 

3 

DW 

043 

• 11 

AGE 

3 

DW 

044 

• 12 

AGE 

3 

DW 

045 

• 13 

AGE 

3 

DW 

046 

• 14 

AGE 

3 

DW 

047 

• 15 

AGE 

3 

DW 

048 

• 16 

AGE 

3 

T£mt_S4: DW 

049 

• 1 

AGE 

4 

DW 

050 

• 2 

AGE 

4 

DW 

051 

13 

AGE 

4 

DW 

052 

• 4 

AGE 

4 

DW 

053 

• 5 

AGE 

4 

DW 

054 

• 6 

AGE 

4 

DW 

055 

• 7 

AGE 

4 


A-134 




an 

056 

(8 

AGE 


DW 

057 

• 9 

AGE 


CM 

058 

• 10 

AGE 


an 

059 

*11 

AGE 


CM 

060 

• 12 

AGE 


CM 

061 

• 13 

AGE 


DW 

062 

• 14 

AGE 


an 

063 

• 15 

AGE 


0/1 

064 

• 16 

AGE 


■•END GEORGE 07/03/98 





I 

; feed sense table 


; DO FEED (Do 1INVERT) 

.•GEORGE 07/05/98 



Feed_Sl: 


DW 

117 

11 

AGE 1 


CM 

103 

• 2 

AGE 1 


DW 

104 

• 3 

AGE 1 


DW 

105 

• 4 

AGE 1 


DW 

106 

*5 

AGE 1 


DW 

107 

• 6 

AGE 1 


DW 

108 

*7 

AGE 1 


DW 

109 

• 8 

AGE 1 


DW 

110 

*9 

AGE 1 


DW 

111 

*10 

AGE 1 


DW 

112 

*11 

AGE 1 


0/1 

113 

• 12 

AGE 1 


DW 

114 

*13 

AGE 1 


DW 

111 

• 14 

AGE 1 


DW 

115 

*15 

AGE 1 


on 

116 

*16 

AGE 1 

Feed_S2: 


an 

118 

• 1 

AGE 2 


DW 

119 

• 2 

AGE 2 


DW 

120 

• 3 

AGE 2 


DW 

121 

• 4 

AGE 2 


DW 

122 

*5 

AC 2 


an 

123 

• 6 

AGE 2 


an 

124 

• 7 

AGE 2 


an 

125 

• 8 

AGE 2 


DW 

126 

• 9 

AGE 2 


DW 

127 

*10 

AGE 2 


DW 

128 

• 11 

AGE 2 


DW 

113 

• 12 

AGE 2 


DW 

114 

• 13 

AGE 2 


DW 

111 

114 

AGE 2 


CM 

129 

• 15 

AGE 2 

Feed_S3 

DW 

116 

• 16 

AGE 2 


DW 

118 

■1 AGE 3 


an 

130 

• 2 

AGE 3 


an 

131 

• 3 

AGE 3 


an 

132 

• 4 

AGE 3 


an 

122 

• 5 

AGE 3 


A-135 








CM 

107 

«6 

AGE 3 

DW 

133 

#7 

AGE 3 

DW 

134 

#a 

AGE 3 

DW 

110 

• 9 

AGE 3 

DW 

111 

#10 

AGE 3 

DW 

135 

■ 11 

AGE 3 

DW 

113 

#12 

AGE 3 

DW 

114 

■ 13 

AGE 3 

DW 

111 

114 

AGE 3 

DW 

135 

#15 

AGE 3 

DW 

116 

■ 16 

AGE 3 


Feed_S4: 


DW 

145 

• 1 

AGE 4 

DW 

136 

*2 

AGE 4 

DW 

137 

■ 3 

AGE 4 

DW 

138 

*4 

AGE 4 

DW 

139 

■ 5 

AGE 4 

DW 

140 

■ 6 

AGE 4 

DW 

141 

■ 7 

AGE 4 

DW 

142 

■ 8 

AGE 4 

DW 

110 

■ 9 

AGE 4 

DW 

111 

#10 

AGE 4 

DW 

143 

#11 

AGE 4 

DW 

113 

#12 

AGE 4 

DW 

114 

#13 

AGE 

DW 

111 

• 14 

AGE 4 

Dir) 

144 

#15 

AGE 4 

DW 

116 

#16 

AGE 4 


END GEORGE 07/C5/98 
touch front sensor table 


; DO WAKE 
Wakeup_Sl: 


Wakeup_S2: 


; DONE SG 

DW 

146 

DW 

149 

DW 

150 

DW 

154 

CM 

158 

DW 

159 

DW 

163 

DW 

166 

CM 

146 

CM 

149 

CM 

150 

CM 

154 

CM 

158 

DW 

159 

DW 

163 

DW 

166 

DW 

147 

DW 

149 

DW 

151 

Dir) 

155 

DW 

158 

DW 

160 

CM 

163 

CM 

167 

CM 

147 

DW 

149 


■ 1 

AGE 

1 

■ 2 

AGE 

1 

#3 

AGE 

1 

■ 4 

AGE 

1 

#5 

AGE 

1 

■ 6 

AGE 

1 

#7 

AGE 

1 

■ 8 

AGE 

1 

#9 

AGE 

1 

#10 

AGE 

1 

#11 

AGE 

1 

• 12 

AGE 

1 

• 13 

AGE 

1 

#14 

AGE 

1 

#15 

AOE 

1 

#16 

AGE 

1 

) #1 

AGE 2 

#2 

AGE 

2 

■ 3 

AGE 

2 

■ 4 

AGE 

i 

■ 5 

AGE 

2 

16 

AGE 

2 

•7 

AGE 

2 

18 

AGE 

2 

#9 

AGE 

2 

• 10 

AGE 

2 


A-136 







DW 

151 

• 11 

AGE 2 

DW 

155 

• 12 

AGE 2 

EW 

158 

*13 

AGE 2 

DW 

160 

*14 

AGE 2 

DW 

163 

115 

AGE 2 

DW 

167 

*16 

AGE 2 

dw 

148 

; «l 

AGE 

DW 

149 

*2 

AGE 3 

cw 

152 

• 3 

AGE 3 

DW 

156 

*4 

AGE 3 

DW 

158 

*5 

AGE 3 

DW 

161 

*6 

AGE 3 

DW 

164 

*7 

AGE 3 

DW 

168 

*8 

AGE 3 

DW 

148 

*9 

AGE 3 

DW 

149 

*10 

AGE 3 

DW 

152 

*11 

AGE 3 

DW 

15l 

*12 

AGF 3 

DW 

158 

*13 

AGE 3 

DW 

161 

*1/ 

AGE 3 

DW 

164 

»: j 

AGE 3 

DW 

168 

*16 

AGE 3 

DW 

148 

; *1 

AGE 

DW 

14_- 

*2 

AGE 4 

DW 

153 

*3 

AGE 4 

DW 

157 

• 4 

AGE 4 

DW 

158 

*5 

AGE 4 

DW 

162 

*6 

AGE 4 

DW 

165 

• 7 

AGE 4 

DW 

169 

*8 

AGE 4 

DW 

148 

• 9 

AGE 4 

DW 

149 

*10 

AGE 4 

DW 

153 

*1. 

AwE 4 

DW 

157 

*12 

AGE 4 

DW 

158 

*13 

AGE 4 

DW 

162 

*14 

AGE 4 

DW 

162 

*15 

AGE 4 

DW 

169 

*'.6 

AGE 4 


;Ball tilt sensor taole 
; DO TILT (HANGING 01"") 

; START HANGOUT MACRC 15-101,SAY 79-106 
;GEORGE 07/04/98 


I DO HANGOUT 
f DO BORED 

Bored_Sl! ,-bored time out 


W 

085 

1 AGE 1 


DW 

086 

*2 

AGE 

1 

DW 

087 

• 3 

AGE 

1 

D-J 

088 

*4 

AGE 

1 

DW 

089 

*5 

AGE 

1 

DW 

090 

• 6 

AGE 

1 

DW 

091 

*7 

AGE 

1 

DW 

092 

*8 

AGE 

1 

Ds' 

093 

• 9 

AGE 

1 

DW 

094 

*10 

AGE 

1 


.-sleep 

;dobedo 
,-yawn 


A-137 








DW 

095 

; #11 

AGE 

1 ;sigh 




DW 

095 

; #12 

AGE 

1 ;sigh 




DW 

096 

j #13 

AGE 

1 ; haa 




DW 

091 

; #14 

AGE 

1 ; sleep wat. 

96 

droh 


DW 

097 

; #15 

AGE 

1 ;heey 




DW 

098 

; #16 

AGE 

1 i phone 



Bored_S2 

DW 

085 

; *1 

AGE 

2 




DW 

086 

; #2 

AGE 

2 




DW 

087 

1 #3 

AGE 

2 




DW 

088 

; #4 

AGE 

2 




DW 

089 

; #5 

AGE 

2 




DW 

099 

j #6 

AGE 

2 




DW 

091 

; #7 

AGE 

2 




DW 

092 

; #8 

AGE 

2 




DW 

093 

; #9 

AGE 

2 




Dir; 

094 

; #10 

ACE 

2 




DW 

095 

; #11 

AGE 

2 




DW 

095 

; #12 

AGE 

2 




DW 

096 

; #13 

AGE 

2 




DW 

091 

; #14 

AGE 

1 ; sleep was 

96 

droh 


DW 

097 

; #15 

AGE 

2 




DW 

098 

; »16 

AGE 

2 



Bored_S3: 

EM 

085 

; #1 

AGE 

3 




DW 

086 

; #2 

AGE 

3 




EW 

087 

; #3 

AGE 

3 




DW 

088 

; #4 

AGE 

3 




DW 

101 

: #5 

AGE 

3 




DW 

100 

; #6 

AGE 

3 




DW 

091 

; #7 

AGE 

3 




DW 

092 

; #8 

AGE 

3 




DW 

093 

; #9 

AGE 

3 




DW 

094 

; #10 

AGE 

3 




DW 

095 

; #11 

AGE 

3 




DW 

095 

; #12 

AGE 

3 




DW 

096 

; #13 

AGE 

3 




DW 

091 

; #14 

AGE 

1 ;s1eep was 

96 

droh 


DW 

097 

; #15 

AGE 

3 




DW 

098 

; #16 

AGE 

3 



Bored_S4 : 

DW 

085 

; #1 

AGE 

4 




DW 

086 

; #2 

AGE 

4 




DW 

087 

; #3 

AGE 

4 




DW 

088 

; #4 

AGE 

4 




DW 

101 

; #b 

AGE 

4 




DW 

100 

j 16 

AGE 

4 




DW 

091 

; #7 

AGE 

4 




DW 

092 

j 18 

AGE 

4 




DW 

093 

; #9 

AGE 

4 




DW 

094 

; #10 

AGE 

4 




DW 

095 

; #11 

AGE 

4 




DW 

095 

; #12 

AGE 

4 




DW 

096 

; (13 

AGE 

4 




DW 

091 

; #14 

AGE 

1 ;sleep was 

96 

droll 


DW 

097 

; #15 

AGE 

4 FIXED DMH WAS 

96 


DW 

098 

; #16 

AGE 

4 




; END HANGOUT 
;END OEORGE 07/04/98 




,-GEORGE 07/07/98 
; INVERT 

;Ball invert sensor table 


; 


lnvrt_si: dw 

202 

• 1 

AGE 1 

DW 

203 

12 

AGE 1 

DW 

206 

■ 3 

AGE 1 

DW 

208 

• 4 

AGE 1 

DW 

212 

(5 

AGE 1 

DW 

213 

16 

AGE 1 

DW 

217 

• 7 

AGE 1 

DW 

219 

*8 

AGE 1 

DW 

220 

• 9 

AGE 1 

DW 

224 

• 10 

AGE 1 

DW 

228 

111 

AGE 1 

DW 

232 

• 12 

AGE 1 

DW 

234 

113 

AGE 1 

DW 

232 

114 

AGE 1 

dw 

234 

• 15 

AGE 1 

DW 

235 

• 16 

AGE 1 

Invrt_S2: DW 

202 

• 1 

AGE 2 

EW 

203 

• 2 

AGE 2 

DW 

207 

• 3 

AGE 2 

DW 

209 

• 4 

AGE 2 

DW 

212 

• 5 

AGE 2 

DW 

214 

• 6 

AGE 2 

DW 

217 

• 7 

AGE 2 

DW 

219 

18 

AGE 2 

DW 

221 

• 9 

AGE 2 

DW 

225 

• 10 

AGE 2 

DW 

229 

• 11 

AGE 2 

DW 

232 

• 12 

AGE 2 

DW 

234 

113 

AGE 2 

DW 

232 

• 14 

AGE 2 

DW 

234 

• 15 

AGE 2 

DW 

236 

• 16 

AGE 2 

Invrt_S3: DW 

202 

• 1 

AGE 3 

DW 

204 

12 

AGE 3 

DW 

207 

• 3 

AGE 3 

DW 

210 

14 

AGE 3 

DW 

212 

• 5 

AGE 3 

DW 

215 

kO 

AGE 3 

DW 

218 

• 7 

At . 3 

DW 

219 

• 8 

AG 2 3 

DW 

222 

• 9 

AGE 3 

DW 

226 

• 10 

AGE 3 

DW 

230 

• 11 

AGE 3 

DW 

232 

112 

AGE 3 

DW 

234 

• 13 

AGE 3 

DW 

232 

114 

AGE 3 

EW 

234 

• 15 

AGE 3 

DW 

237 } 

• 16 

AGE 3 

lnvrt_S4: DW 

202 

• 1 

AGE 4 

EW 

205 

• 2 

AGE 4 

DW 

207 

• 3 

AGE 4 

DW 

211 

• 4 

AGE 4 


A-J39 





V* 

212 

• 5 

AGE 4 

1 1 

216 

16 

AGE 4 

DW 

218 

• 7 

AGE 4 

DW 

219 

(8 

AGE 4 

DW 

223 

19 

AGE 4 

DW 

227 

• 10 

AGE 4 

L.1 

231 

• 11 

AGE 4 

DW 

233 

• 12 

AGE 4 

DW 

231 

• 13 

AGE 4 

DW 

233 

• 14 

AGE 4 

DW 

234 

*15 

AGE 4 

DW 

238 

• 16 

AGE 4 


;GEORGE 07/07/98 
; BACK 

.•touch back sensor table 


Tback_S1: DW 

239 

J »1 

AGE 1 

DW 

240 

; *2 

AGE 1 

DW 

244 

; »3 

AGE 1 

DW 

248 

; *4 

AGE 1 

DW 

249 

; *5 

AGE 1 

DW 

248 

; *6 

AGE 1 

DW 

253 

; *7 

AGE 1 

DW 

256 

; *8 

AGE 1 

DW 

258 

j »9 

AGE 1 

DW 

239 

; 

AGE 1 

DW 

248 

; *11 

AGE 1 

DW 

261 

; »12 

AGE 1 

DW 

263 

; «13 

AGE 1 

DW 

266 

; *14 

AGE 1 

DW 

269 

; »15 

AGE 1 

DW 

272 

; »16 

AGE 1 

Tback_S2: DW 

239 

1 '1 

AGE 2 

DW 

241 

; «2 

AGE 2 

DW 

245 

; *3 

AGE 2 

DW 

248 

; *4 

AGE 2 

DW 

250 

i *5 

AGE 2 

DW 

248 

j 16 

AGE 2 

DW 

253 

; *7 

AGE 2 

DW 

257 

; *8 

AGE 2 

DW 

259 

; *9 

AGE 2 

DW 

239 

; (10 

AGE 2 

DW 

248 

; *11 

AGE 2 

EW 

262 

; (12 

AGE 2 

CW 

264 

; »13 

AGE 2 

DW 

267 

; (14 

AGE 2 

DW 

270 

; *15 

AGE 2 

DW 

273 

; • 16 

AGE 2 

Tback_S3: DW 

239 

; *1 

AGE 3 

DW 

242 

; «2 

AGE 3 

DW 

246 

j *3 

AGE 3 

DW 

248 

; *4 

AGE 3 

DW 

251 

J *5 

AGE 3 

DW 

248 

; *6 

AGE 3 

DW 

254 

; *7 

AGE 3 

DW 

257 

; *8 

AGE 3 

DW 

260 

; *9 

AGE 3 


A-140 





DW 

239 

#10 

AGE 3 

DW 

248 

• 11 

AGE 3 

DW 

261 

• 12 

AGE 3 

DW 

265 

• 13 

AGE 3 

DW 

268 

• 14 

AGE 3 

DW 

271 

• 15 

AGE 3 

DW 

274 

• 16 

AGE 3 

Tback_S4: DW 

239 

• 1 

AGE 4 

DW 

243 

• 2 

AGE 4 

DW 

247 

• 3 

AGE 4 

DW 

248 

• 4 

AGE 4 

DW 

252 

• 5 

AGE 4 

DW 

248 

• 6 

AGE 4 

DW 

255 

• 7 

AGE 4 

DW 

257 

• 8 

AGE 4 

DW 

260 

• 9 

AGE 4 

DW 

239 

110 

AGE 4 

DW 

248 

• 11 

AGE 4 

DW 

262 

*12 

AGE 4 

DW 

265 

• 13 

AGE 4 

DW 

268 

• 14 

AGE 4 

DW 

271 

• 15 

AGE 4 

DW 

275 

• 16 

AGE 4 


;END GEOROE 07/07/9S 


; I. R. receive 

cable 



; DO IR 





IR_S1: 

DW 

393 

• 1 

AGE 1 


DW 

393 

• 2 

AGE 1 


DW 

393 

• 3 

AGE 1 


DW 

393 

14 

AGE 1 


DW 

394 

• 5 

AGE 1 


DW 

395 

• 6 

AGE 1 


DW 

396 

• 7 

AGE 1 


DW 

396 

• 8 

AGE 1 


DW 

291 

19 

AGE 1 


DW 

399 

• 10 

AGE 1 


DW 

399 

• 11 

AGE 1 


DW 

400 

• 12 

AGE 1 


DW 

401 

• 13 

AGE 1 


DW 

401 

• 14 

AGE 1 


DW 

402 

• 15 

AGE 1 


DW 

403 

116 

AGE 1 

IR_S2: 

DW 

404 

11 

AGE 2 


DW 

404 

• 2 

AGE 2 


DW 

404 

• 3 

AGE 2 


DW 

405 

• 4 

AGE 2 


DW 

405 

• 5 

AGE 2 


DW 

406 

16 

AGE 2 


DW 

407 

• 7 

AGE 2 


DW 

407 

• 8 

AGE 2 


DW 

291 

•9 

AGE 2 


DW 

409 

; *10 

AGE 2 


DW 

409 

; 111 

AGE 2 


A-141 






IR_S3: 


IR_S4: 


DW 

400 

; *12 AGE 

DW 

411 

; *13 AGE 

DW 

411 

; 114 AGE 

DW 

412 

; *15 AGE 

DW 

413 

; *16 AGE 

EW 

414 

1 *1 

AGE 

DW 

414 

; *2 

AGE 

DW 

414 

; *3 

AGE 

DW 

414 

; *4 

AGE 

DW 

414 

; *5 

AGE 

DW 

415 

; *6 

AGE 

DW 

416 

; *7 

AGE 

DW 

416 

; *8 

AGE 

DW 

291 

; *9 

AGE 

DW 

406 

; *10 AGE 

DW 

418 

; *11 AGE 

DW 

428 

; *12 AGE 

DW 

419 

; *13 AGE 

DW 

419 

; *14 AGE 

DW 

420 

; *15 AGE 

DW 

403 

; #16 AGE 

DW 

421 

; *1 

AGE 

DW 

421 

; *2 

AGE 

DW 

421 

; *3 

AGE 

DW 

421 

; *4 

AGE 

DW 

421 

; *5 

AGE 

DW 

422 

; #6 

AGE 

DW 

423 

; *7 

AGE 

DW 

423 

; #8 

AGE 

DW 

291 

; #9 

AGE 

DW 

425 

; #10 AGE 

DW 

426 

; #11 AGE 

DW 

427 

; #12 AGE 

DW 

428 

; #13 AGE 

DW 

428 

; #14 AGE 

DW 

429 

; #15 AGE 

DW 

413 

; #16 AGE 


2 

2 

2 

2 

2 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

3 

4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
4 
3 


.•light sense 

table 

bright sense) 


;DO LIGHT 






Light_Sl: 







DW 

293 


1 *1 

AGE 1 


DW 

305 

; 003 

• 

• 2 A 


DW 

294 


; *3 

AGE 1 


DW 

295 


; #4 

AGE 1 


DM 

296 


I *5 

AGE 1 


EW 

297 


; *6 

AGE 1 


DW 

298 


! *7 

AGE 1 


DW 

299 


; *8 

AGE 1 


DW 

293 


; *9 

AGE 1 


DW 

305 

; 003 


i 


DW 

294 


; #11 

AGE 1 


DW 

295 


; *12 

AGE 1 


DW 

296 


; *13 

AOE 1 


DW 

297 


; *14 

AGE 1 


110 AOE 1 


A-ifi 




DW 

298 

; *15 

AGE 1 




DW 

299 

; *16 

AGE 1 




Light_S2: 







DW 

293 

; *1 AGE 2 




DW 

305 

; 003 

; *2 

AGE 

2 


DW 

294 

; *3 

AGE 2 




DW 

300 

; *4 

AGE 2 




DW 

296 

; *5 

AGE 2 




DW 

301 

J *6 

AGE 2 




DW 

298 

; *7 

AGE 2 




DW 

299 

; *8 

AGE 2 




DW 

293 

: »9 AGE 2 




DW 

305 

; 003 

; *10 

AGE 

2 


DW 

294 

3 *11 

AGE 2 




DW 

295 

; *12 

AGE 2 




DW 

296 

; *13 

AGE 2 




DW 

301 

; *14 

AGE 2 




DW 

298 

; *15 

AGE 2 




DW 

299 

; *16 

AGE 2 




Light_S3: 







DW 

302 

; *1 

AGE 3 




DW 

305 

; 003 

; *2 

AGE 

3 


DW 

294 

; *3 

AGE 3 




dw 

303 

; *4 

AGE 3 




DW 

296 

; *5 

AGE 3 




DW 

304 

; *6 

AGE 3 




DW 

298 

; *7 

AGE 3 




DW 

299 

; *8 

AGE 3 




DW 

302 

; *9 

AGE 3 




DW 

305 

; 003 

; *10 

AGE 

3 


DW 

294 

; *11 

AGE 3 




DW 

303 

; *12 

AGE 3 




DW 

296 

; *13 

AGE 3 




DW 

304 

; *14 

AGE 3 




DW 

298 

; *15 

AGE 3 




DW 

299 

; *16 

AGE 3 




Light_S4: 







DW 

302 

; *1 

AGE 4 




DW 

305 

; 003 

; *2 

AGE 

4 


DW 

294 

; *3 

AGE 4 




DW 

306 

; *4 

AGE 4 




DW 

296 

} *5 

AGE 4 




DW 

307 

; *6 

AGE 4 




DW 

298 

; *7 

AGE 4 




DW 

299 

; *8 

AGE 4 




DW 

302 

; 19 

AGE 4 




DW 

305 

;003 

; *10 

AGE 

4 


DW 

294 

; *11 

AGE 4 




DW 

306 

; *12 

AGE 4 




DW 

296 

; *13 

AGE 4 




DW 

307 

3 *14 

AGE 4 




DW 

298 

; *15 

AGE 4 




DW 

• 

1 

299 

; *16 

AGE 4 




• 

( 

; light sense 

table (DARK 

SENSE) 





; DO DARK 













A-143 







; DO LIGHT DARKER 





Dark_Sl: EW 

308 

*1 

AGE 

1 


DW 

309 

12 

AGE 

1 


DW 

310 

13 

AGE 

1 


DW 

311 

*4 

AGE 

1 


DW 

312 

• 5 

AGE 

1 


DW 

313 

«6 

AGE 

1 


DW 

314 

• 7 

AGE 

1 


DW 

315 

18 

AGE 

1 


DW 

308 

• 9 

AGE 

« 


DW 

309 

• 10 

AGE 

1 


DW 

310 

• 11 

AGE 

1 


DW 

311 

• 12 

AGE 

1 


DW 

312 

• 13 

AGE 

1 


DW 

313 

• 14 

AGE 

1 


DR' 

314 

• 15 

AGE 

1 


DW 

315 

• 16 

AGE 

1 


Dark_S2: 

DW 

316 

• 1 

AGE 

2 


DW 

317 

• 2 

AGE 

2 


DR) 

318 

• 3 

AGE 

2 


DW 

311 

• 4 

AGE 

2 


DW 

319 

• 5 

AGE 

2 


DW 

313 

• 6 

AGE 

2 


DW 

320 

• 7 

AGE 

2 


DW 

315 

• 8 

AGE 

2 


DR) 

316 

• 9 

AGE 

2 


DW 

317 

• 10 

AGE 

2 


DW 

318 

• 11 

AGE 

2 


DW 

311 

112 

AGE 

2 


DW 

319 

• 13 

AGE 

2 


DW 

313 

• 14 

AGE 

2 


DW 

320 

• 15 

AGE 

2 


DW 

315 

• 16 

AGE 

2 

’ 

Dark_S3: DW 

321 

• 1 

AGE 

3 


DW 

322 

• 2 

AGE 

3 


DW 

323 

13 

AGE 

3 


DW 

311 

• 4 

AGE 

3 


DW 

319 

15 

AGE 

3 


DW 

313 

• 6 

AGE 

3 


DW 

324 

•7 

AGE 

3 


DW 

325 

18 

AGE 

3 


DW 

321 

• 9 

AGE 

3 


DW 

322 

• 10 

AGE 

3 


DW 

323 

• 11 

AGE 

3 


DW 

311 

• 12 

AGE 

3 


DW 

319 

*13 

AGE 

3 


DW 

313 

• 14 

AGE 

3 


DW 

324 

• 15 

AGE 

3 


DW 

325 

• 16 

AGE 

3 


Dark_S4: DW 

326 

• 1 

AGE 

4 


DW 

327 

•2 

AGE 

4 


DW 

328 

• 3 

AGE 

4 


DW 

311 

• 4 

AGE 

4 


DW 

329 

*5 

AGE 

4 


DR) 

313 

• 6 

AGE 

4 


DW 

330 

• 7 

AGE 

4 

A-144 




DW 

331 

; 18 AGE 4 

DW 

326 

; *9 AGE 4 

DW 

327 

; *10 AGE 4 

DW 

326 

; #11 AGE 4 

DW 

311 

; #12 AGE 4 

DW 

329 

1 #13 AGE 4 

DW 

313 

1 #14 AGE 4 

DW 

330 

1 #15 AGE 4 

DW 

331 

; #16 AGE 4 


; Hide and Seek game Cable 

Peek_Sls DW 000 } »0 AGE 1 


DW 

000 

#1 

AGE 

1 

DW 

000 

#2 

AGE 

1 

DW 

000 

• 3 

AGE 

1 

DW 

000 

«4 

AGE 

1 

DW 

000 

#5 

AGE 

1 

DW 

000 

#6 

AGE 

1 

DW 

000 

#7 

AGE 

1 

DW 

000 

#8 

AGE 

1 

DW 

000 

• 9 

AGE 

1 

DW 

000 

#10 

AGE 

1 

DW 

000 

#11 

AGE 

1 

DW 

000 

#12 

AGE 

1 

DW 

000 

#13 

AGE 

1 

DW 

000 

#14 

AGE 

1 

DW 

000 

#15 

AGE 

1 


Peek_S2: DW 000 ; #0 AGE 2 


DW 

000 

; #1 

AGE 

2 

DW 

000 

; #2 

AGE 

2 

DW 

000 

; #3 

AGE 

2 

DW 

000 

#4 

AGE 

2 

DW 

000 

; #5 

AGE 

2 

DW 

000 

; #6 

AGE 

2 

DW 

000 

; #7 

AGE 

2 

DW 

000 

; #8 

AGE 

2 

DW 

000 

; #9 

AGE 

2 

DW 

000 

; #10 

AGE 

2 

DW 

000 

; #11 

AGE 

2 

DW 

000 

; <12 

AGE 

2 

DW 

000 

; #13 

AGE 

2 

DW 

000 

; #14 

AGE 

2 

DW 

000 

; #15 

AGE 

2 


Peek_S3: DW 000 ; »0 AGE 3 


DW 

000 

• 1 

AGE 

3 

DW 

000 

#2 

AGE 

3 

DW 

000 

#3 

AGE 

3 

DW 

000 

#4 

AGE 

3 

DW 

000 

#5 

AGE 

3 

DW 

000 

#6 

AGE 

3 

DW 

000 

#7 

AGE 

3 

DW 

000 

#8 

AGE 

3 

DW 

000 

#9 

AGE 

3 

DW 

000 

#10 

AGE 

3 


A-145 








DW 000 
DW 000 
DW 000 
DW 000 
DW 000 

Peek_S4: DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW 000 
DW UUU 

DW 000 
DW 000 
DW 000 
DW 000 


*11 

AGE 

3 

*12 

AGF 

3 

*13 

AGE 

3 

*14 

AGE 

3 

*15 

AGE 

3 


. 

(0 

• 1 

AGE 

4 

• 2 

AGE 

4 

*3 

AGE 

4 

*4 

AGE 

4 

*5 

AGE 

4 

*6 

AGE 

4 

*7 

AGE 

4 

*8 

AGE 

4 

*9 

AGE 

4 

*10 

AGE 

4 

" A * 

• «*• 

4 

*12 

AGE 

4 

*13 

AGE 

4 

*14 

AGE 

4 


; *15 AGE 4 


Macro_grpl: ;pcints into macro tables 

DW Tbll_Macro0 

DW Tbll_Macrol.Tbll_Macro2,Tbll_Macro3,Tbll_Macro4,Tbll_Macro5 

DW Tbll_Macro6,Tbll_Macro7,Tbll_Macro8,Tbll_Macro9,Tbll_Macro10 

DW Tbll_Macroll,Tbll_Macrol2.7bll_Macrcl3,Tbll_Hacrol4,Tbll_Macrol5 
DW Tbll_Macrol6,Tbll_Macrol7,Tbll_Macrol8,Tbll_Macrol9,Tbll_Macro20 
DW Tbl1_Macro21,Tbll_Macro22,Tbll_Macro2 3,Tbll_Macro24,Tbll_Hacro2 5 

DW Tbll_Macro26,Tbll_Macro27.Tbll_Kacro28.Tbll_Macro29,Tbll_Macro30 
DW Tbll_Macro31,Tbll_Macro32.Tbll_Hacro33,Tbll_Macro34,Tbll_Macro35 
DW Tbll_Macro36,Tbll_Macro37,Tbll_Macro38,Tbll_Macro39.Tbll_Macrc4 0 

DW Tbll_Macro41,Tbll_Macro42,Tbll_Macro43,Tbll_Macro44.Tbll_Macro45 
DW Tbll_Macro46,Tbll_Macro47.Tbll_Macro48,Tbll_Macro49,Tbll_Macrc50 
DW Tbll_Macro51,Tbll_Mac-o52,Tbll_Macro53,Tbll_Macro54,Tbll_Macro55 
DW Tbll_Macro56.Tbll_Mac.o57,Tbll_Hacro58.Tbll_Macro59,Tbll_Macro60 
DW Tbll_Macro61,Tbll_Macro62,Tbll_Hacro63,Tbll_Macro64,Tbll_Hacro65 
DW Tbl1_Macro66,Tbll_Macro67,Tbll_Macro68,Tbll_Macro69.Tbll_Macro70 

DW Tbll_Macro71,Tbll_Macro72,Tbll_Macro73.Tbll_Macro74.Tbll_Macro75 
DW Tbll_Macro76,Tbll_Macro77,Tbll_Macro7B.Tbll_Macro79.Tbll_Macro80 
DW Tbll_Macro81.Tbll_Macro82,Tbll_Macro83,Tbll_Macro84,Tbll_Macro85 
DW Tbll_Macro86,Tbll_Macro87,Tbll_Macro88,Tbll_Macro89,Tbll_Macro90 
DW Tbll_Macro91,Tbll_Macro92,Tbll_Macro9 3,Tbll_Macro94,Tbll_Macro95 

DW Tbll_Macro96, Tbll_Hacro97 , Tbll_Macro98,Tbll_Macro99 
DW Tbll_MacrolOO,Tbl]_Macrol01.Tbll_Macrol02.Tbll_Macrol03,Tbll_Macro 
104 

DW Tbll_Macrol05,Tbll_Macrol06,Tbll_Macrol07,Tbll_Macrol08,Tbll_Macro 
109 

DW Tbll_MacrollO,Tbll_Macrolll,Tbll_Macroll2.Tbll_Macroll3.Tbll_Macro 
114 

DW Tbll_Macrol15,Tbll_Macrol16.Tbll_Macrol17.Tbll_Macroll8,Tbll_Macro 
119 

DW Tbll_Macrol20,Tbll_Macrol21,Tbll_Hacrol22,Tbll_Macrol23.Tbll_Macro 


A-146 









124 

DW Tbll Macrol25,Tbll_Macrol26.Tbll_Macrol27 
Macro_grp2: /points into macro tables 

DW Tbl2_Macrol28 

DW Tbl2_Macrol29,Tbl2_Macrol30,Tbl2_Macrol31,Tbl2_f rol32.Tbl2 Macro 
133 

DW Tbl2_Macrol34,Tbl2_Macrol35,Tbl2_Macrol3 6,Tbl2_Kacrol37, Tbl2_Macro 

138 

DW Tbl2_Macrol39,Tbl2_Macrol40,Tbl2_Macrol41,Tbl2 Macrol42,Tbl2_Macro 
143 

DW Tbl2_M«crol44,Tbl2_Hacrol45.Tbl2_Macrol46,Tbl2_Macrol47,Tbl2_Macro 

148 

DW Tbl2_Macrol49.Tbl2_Macrol50.Tbl2_MacrolSl.Tbl2_Macrol52.Tbl2_Macro 

153 

DW Tbl2_Macrol54.Tbl2_Macrol55,Tbl2_Macrol56,Tbl2_Macrol57,Tbl2 Macro 
158 

DW Tbl2_Macrol59,Tbl2_Macrol60,Tbl2_Macrol61.Tbl2_Macrol62,Tbl2_Macro 
163 

DW Tbl2_Macrol64,Tbl2_Macrol65,Tbl2_Macrol66,Tbl2_Macrol67,Tbl2_Macro 
168 

DW Tbl2_Macrol69,Tbl2_Macrol70,Tbl2_Macrol71.Tbl2_Macrol72.Tbl2 Macro 

173 

DW Tbl2_Macrol74,Tbl2_Macrol75,Tbl2_Macrol76,Tbl2_Macrol77,Tfcl2_Kacrc 
178 

DW Tbl2_Macrol79. Tbl2_Kacrol80. Tbl2_Macrol81,Tbl2_Kacrcl82. Tbl2_Hacrc 
183 

DW Tbl2_Macrol84.Tbl2_MacrolS5,Tbl2_Macrol86,Tbl2_Macrol87,Tbl2_Macro 
188 

DW Tbl2_Macrol89,Tbl2_Macrol90.Tbl2_Macrol91,Tbl2_Macrol92.Tbl2 Macro 

193 

DW Tbl2_Macrol94,Tbl2_Macrol95.Tbl2_Macrol96,Tbl2_Macrol97,Tbl2_Macro 
198 

DW Tbl2_Macrol99,Tbl2_Macro200,Tbl2_Macro201,Tbl2_Macro202.Tbl2_Macro 
203 

DW Tbl2_Macro204.Tbl2_Macro205.Tbl2_Macro206.Tbl2_Macro207.Tbl2_Macro 
208 

DW Tbl2_Maero2 0 9,Tbl2_Macro210,Tbl2_Macro211,Tbl2_Macro212.Tbl2_Kacro 

213 

DW Tbl2_Macro214,Tbl2_Kacro215,Tbl2_Macro216,Tbl2_Macro217,Tbl2_Macrc 
218 

DW Tbl2_Macro219,Tbl2_Macro220.Tbl2_Macro221. Tbl2_Macro222,Tbl2_Macro 

223 

DW Tbl2_Macro224,Tbl2_Macro22S,Tbl2_Macro226.Tbl2_Macro227,Tbl2_Macro 
228 

DW Tbl2_Macro229,Tbl2_Macro230.Tbl2_Macro231,Tbl2_Macro232,Tbl2 Macro 

233 

DW Tbl2_Macro234.Tbl2_Macro235,Tbl2_Macro236.Tbl2_Macro237,Tbl2 Macro 

238 

DW Tbl2_Macro239.Tbl2_Macro240,Tbl2_Macro241,Tbl2_Macro242.Tbl2 Macro 
243 

DW Tbl2_Macro244,Tbl2_Macro245,Tbl2_Macro246.Tbl2_Kacro247,Tbl2_Macro 
248 

DW Tbl2_Macro249,Tbl2_Macro250,Tbl2_Macro251,Tbl2_Macro252,Tbl2_Macro 
253 

DW Tbl2_Macro254,Tbl2_Macro255 
Macro_grp3: ; points into macro tables 


A-147 



DW Tbl3_Hacro256 

DW Tbl3_Macro257,Tbl3_Macro258,Tbl3_Macro259,Tbl3_Macro260,Tbl3_Macro 
261 

DW Tbl3_Hacro262,Tbl3_Macro263.Tbl3_Macro2t-4.Tbl3_Mccro26S.Tbl3_Macro 
266 

DW Tbl3_Macro267,Tbl3_Macro268,Tbl3_Macro269.Tbl3_Macro270,Tbl3_Hacro 
271 

DW Tbl3_Macro272,Tbl3_Macro273,Tbl3_Macro274,Tbl3_Macro275,Tbl3_Macro 
276 

DW Tbl3_Macro277,Tbl3_Macro278,Tbl3_Macro279,Tbl3_Macro280,Tbl3_Macro 
281 

DW Tbl J_Macro282 , Tbl3_)'acro283 . Tbl3_Macro284 , Tbl3_Macro285 , Tbl3_Macro 
286 

DW Tbl3_Macro287. Tbl3_Macro288, Tbl3_Macro289, Tbl 3_tfacro290, Tbl3_Macro 
291 

DW Tbl3_Macro292,Tbl3_Macro293,Tbl3J1acro294,Tbl3 Macro295,Tbl3_Macro 
296 

DW Tbl3_Macro297.Tbl3_Macro298.Tbl3_Macro299,Tbl3_Macro300,Tbl3_Macro 
301 

DW Tbl3_Hacro302,Tbl3_Macro303,Tbl3_Macro304,Tbl3_Macro305,Tbl3_Macro 
306 

DW Tbl3_Kacro307,Tbi3_Macro308.Tbl3_Macro309,Tbl3_Macro310,Tbl3_Kacro 
311 

DW Tbl3_Macro312,Tbl3_Hacro313.Tbl3_Macro314.Tbl3_Hacro315.Tbl3_Macro 
316 

DW Tbl3_Macro317,Tbl3_Macro318.Tbl3_Macro319,Tbl3_Macro320,Tbl3_Macro 
321 

DW Tbl3_Macro322,Tbl3_Macro323.Tbl3_Macro324,Tbl3_Macro325,Tbl3_Macrc 
326 

DW Tbl3_Macro327,Tbl3_Macro32S,Tbl3_Macro329,Tbl3_Macro330,Tbl3_Macro 
331 

DW Tbl3_Macro332.Tbl3_Macro333.Tbl3_Macro334.Tbl3_Macro335,Tbl3_Macro 

336 

DW Tbl3_Macro337,Tbl3_Macro338.Tbl3_Macro339.Tbl3_Macro340,Tbl3_Macro 
341 

DW Tbl3_Macro342,Tbl3_Macro343,Tbl3_Macro344,Tbl3_Macro345,Tbl3_Macro 
346 

DW Tbl3_Macro347.Tbl3_Macro348,Tbl3_Macro349,Tbl3_Macro350.Tbl3_Macro 
351 

DW Tbl3_Macro352,Tbl3_Macro353,Tbl3_Macro354.Tbl3_Macro355.Tbl3_Macro 

356 

DW Tbl3_Macro357,Tbl3_Kacro358,Tbl3_Macro359,Tbl3_Macro360,Tbl3_Macro 
361 

DW Tbl3_Macro362,Tbl3_Macro3 63.Tbl3_Macro3 64,Tbl3_Macro3 65,Tbl3_Macro 
366 

DW Tbl3_Macro367,Tbl3_Macro368,Tbl3_Macro369,Tbl3_Macro370,Tbl3_Kactw 
371 

DW Tbl3_J4acro372,Tbl3_Macro373.Tbl3_Macro374,Tbl3_Macro375.Tbl3_.'aci 
376 

DW Tbl3_Macro377,Tbl3_Macro378.Tbl3_Macro379.Tbl3_Macro380,Tbl3_Macro 

381 

DW Tbl3_Macro382,Tbl3_Macro383 

; 

Macro_grp4 : ;points liito macro tables 

DW Tbl4_Macro384 

DW Tbl4_Hacro385,Tbl4_Macro386,Tbl4_Macro387,Tbl4_Macro388,Tbl4_Macro 

389 

DW Tbl4_Macro390,Tbl4_Macro391,Tbl4_Macro392,Tbl4_Macro393,Tbl4_Macro 

394 



DW Tbl4_Macro395,Tbl4_Macro396,Tbl4_Macro397,Tbl4_Macro398,Tbl4 Macro 
399 

DW Tbl4_Macro400,Tbl4_Macro401,Tbl4_Macro402,Tbl4_Macro403.Tbl4_Macro 
404 

Of! Tbl4_Macro405, Tbl4_Macro406. Tbl,_Macro407 , Tbl4_Macro408, Tbl4J4acro 

409 

DS-.’ Tbl4_Macro410 . Tbl4_Macro4U . Tbl4_Macro412, Tbl4_Macro413 , Tbl4_Macro 

DW Tbl4_Macro415,Tbl4_Macro416.Tbl4_Macro417,Tbl4_Macro418,Tbl4_Macro 
419 

DW Tbl4_Macro420.Tbl4_Macro421,Tbl4_Macro422,Tbl4_Macro423.Tbl4_Macro 
424 

DW Tbl4_Macro425,Tbl4_Macro426.Tbl4_Macro427,Tbl4 Macro428,Tbl4_Macro 
429 

DW Tbl4_Macro430.Tbl4_Macro431,Tbl4_Macro432,Tbl4_Macro433.Tbl4_Macro 
434 

DW Tbl4_Macro435,Tbl4_Macro436,Tbl4_Macro437,Tfc14_Macro438,Tbl4 Macro 
439 

DW Tbl4_Macro440,Tbl4_Macro441,Tbl4_Macro442,Tbl4 Macro443,Tbl4 Macro 
444 

DW Tbl4_Macro445.Tbl4_Macro446.Tbl4_Macro447,Tbl4_Macro448,Tbl4 Macro 
449 

DW Tbl4_Macro450,Tbl4_Macrc451,Tbl4_Macro452,Tbl4_Macro453,Tbl4 Macro 
454 

DW Tbl4_Macro455,Tbi4_Macro456.Tbl4_Macro457.Tbl4_Macro458.Tbl4 Macro 
459 

CM Tbl4_Macro4 60.Tbl4_Macro461.Tbl4_Macro4 62,Tbl4_Macro4 63,Tbl4_Macro 

464 

DW Tbl4_Macro465,Tbl4_Macro466.Tbl4_Macro467,Tbl4_Macro468.Tbl4_Macro 
469 

DW Tbl4_Macro470,Tbl4_Macro471,Tbl4_Macro472.Tbl4_Macro473,Tbl4_Macro 
474 

DW Tbl4_Macro475,Tbl4_Macro476.Tbl4_Macrc477.Tbl4_Macro478.Tbl4_Macro 
479 

DW Tbl4_Macro480.Tbl4_Macro481,Tbl4_Macro482.Tbl4 Macro483.Tbl4_Mocro 
484 

DW Tbl4_Macro465,Tbl4_Macro486.Tbl4_Macro487.Tbl4_Macro488,Tbl4 Macro 

489 

DW Tbl4_Macro490,Tbl4_Macro491,Tbl4_Macro492.Tbl4_Macro493,Tbl4_Macro 

494 

DW Tbl4_Macro495,Tbl4_Macro496,Tbl4_Macro497,Tbl4_Macro498 Tbl4_Macro 

499 

DW Tbl4_Macro500,Tbl4_Macro501,Tbl4_Macro502,Tbl4_Macro503,Tbl4_Macro 

504 

DW Tbl4_Macro505,Tbl4_Macro506,Tbl4_Macro507,Tbl4 Macro508,Tbl4 Macro 

509 

DW Tbl4_Macro510,Tbl4_Macro511 


J 

J 


; MACRO TABLES 

; The sensor cables point into the Macro table. This table in turn 
; gets speech and motor Cable data. 

; This can be an entry of 1-511 and effectively chains motor and 
; speech tables together to reuse previous speech motor segments. 


A-149 







; The first group of numbers i3 the speech/motor table value. 

; The last line is the terminator of 00. (00 so 'DB 1 takes 1 less byte) 

; ex: 1 « will call the saysent 1 and the motor table 1. 

Tbll_Macro0: 

DW 511 

DW 00 ; end 

; FOR NAME TESTING DMH 
i WAKE 


; 

DW 

124 

;02 

; 

DW 

125 


l 

1 

DW 

126 


1 

DW 

399 

; delay 

i 

DW 

395 

; ME 


DW 

224 

; MAY-LAH-KA 


DW 

152 



DW 00 

end 



(MIDDLE) 


put sounds and motions together 


; DW 5 

(first 

sound and motion, in this case *5" 

; DW 3 

(next 

sound and motion, in this case ’3‘) 

; DS’f 00 

1 

( end 

of sequence) 

Tbll_Macrol: 



DW 

01 


DW 

00 

; end 

;GEORGE 07/03/98 


Tbll_Macro2: 



DW 

001 

;FRONT SEQ1AGE1 

DW 

00 

;end 

Tbll_Macro3: 



DW 

002 

;FRONT SEQ2AGE1 

DW 

00 

; end 


Tbll_Macro4: 


DW 

003 

;FRONT SEQ3AGE1 

DW 

004 


DW 

00 

;end 

Tbll_Macro5: 



DW 

003 

jFRONT SEQ4AGE1 

DW 

005 


DW 

00 

; end 


; 

Tbll_Macro6: 


DW 

006 

;FRONT SEQ5AGE1 

EW 

00 

; end 


A-150 






Tbll_Macro7: 


DW 

006 

;FRONTSEQ6AGE1 


DW 

007 



DW 

00 

;end 


Tbll_MacroB: 




DW 

008 

;FRONT SEQ7AGE1 


DW 

003 



DW 

00 

;end 


Tbll_Macro9: 




DW 

009 

;FRONTSEQ8AGE1 


DW 

003 



DW 

00 

; end 


Tbll_MacrolO: 




DW 

010 

;FRONT SEQ9agel 


DW 

00 

S end 


Tbll_Macroll: 




DW 

Oil 



DW 

Cvl 

;frontseqlOagel 


DW 

00 

; end 


Tbll_Macrol2: 




DW 

012 



DW 

001 

;seqli FRONT AGE1 ADD SAY001 


DW 

00 

, end 


Tbll_Macrol3 




DW 

001 


* 

DW 

013 

;seqi2 FRONT AGE1 ADD SAY001 


DW 

00 

; end 


Tbll_Macrol4: 




DW 

014 

;seql3 FRONT AGE1 ADD SAY003 


DW 

003 



DW 

00 

; end 



I 

Tbll_Macrol5: 


DW 

015 


;seql4 FRONT AGE1 

DW 

00 

;end 


Tbll_Macrol6: 

DW 

016 


;seql5 FRONT AGE1 

DW 

00 

jend 



Tbll_Macrol7: 


DW 

001 



DW 

017 



DW 

018 



DW 

001 


;seql6 FRONT AGE1 BETWEEN 2(20) 

DW 

00 

;end 


Tbll_Hacrol8: 




DW 

019 


;FRONT SEQ1AGE2 

DW 

00 

; end 


* 

Tbll_Macrol9: 




DW 

001 




A-151 



EM 

020 

.•FRONT SEQ2 AGE2 

EM 

00 

; and 

• 

Tbll__Macro20: 

EM 

010 


EM 

021 

;SEQ3AGE2 FRONT ADD SEQ9AGE1 

EM 

00 

;«nd 


; 

Tbll_Macro21: 


EM 

022 

; SEQ4 

AGE2 

FRONT 

DW 

023 




EM 

00 

;end 



Tbll_Macro22: 





DW 

024 

; SEQ5 

AGE2 

FRONT 

DW 

00 

; end 



Tbll_Macro23: 





DW 

025 

; SEQ6 

AGE2 

FRONT 

EM 

00 

; end 



Tbll_Macro24: 





EM 

026 

; SEQ 7 

AGE2 

FRONT PARTI 

DW 

027 




DW 

00 

; end 



Tbll_Macro25: 





DW 

026 




DW 

026 

; SEC 8 

AGE2 

FRONT 

DW 

028 




DW 

003 




EM 

00 

;end 



Tbll_Macro26: 





DW 

029 



;SEQ 9 FRONT 

DW 

00 

; end 



) 

Tbll_Macro27: 





DW 

030 




DW 

029 

;SEQ 10 FRONT AGE2 

EM 

00 

; end 




Tbll_Macro28: 


DW 

022 


DW 

031 

;SEQ 11 FRONT AGE2 

EM 

00 

; end 


Tbll_Nacro29: 


DW 

001 



DW 

032 

;SEQ 12 FRONT AGE 2 


DW 

00 

; end 


i 

Tbll_Macro30: 




DW 

014 

;aeql3 FRONT 

AGE1&2 ADD SAY003 

DW 

003 



DW 

00 

;end 


1 

Tbll_>lacro31: 




DW 

033 

I 

r-* 

s 

AGE2 


A-152 



CM 

00 

;end 


i 

Tbll_Macro32: 




DW 

034 


j SEQ15 FRONT AGE2 

DW 

001 



EM 

00 

jend 


Tbll_Mac ->33: 




DW 

001 



DW 

035 


;SEQ16 FRONT AGE2 

EM 

00 

; end 


Tbll_Macro34: 




DW 

001 



CM 

036 


;SEQ1 FRONT AGE3 

CM 

00 

; ent' 



; 

Tbll_Macro35: 


DW 

003 



DW 

037 


;SEQ2 FRONT AGE3 

DW 

00 

; end 


Tbll_Macro36: 




DW 

010 



EM 

038 


; SEQ3 FRCSJT AGE 3 

DW 

00 

; end 


Tbll_Macro37: 




DW 

015 



DW 

039 


;SEQ4 FRONT AGE3 

DW 

00 

; end 


Tbll_Macro38: 




DW 

015 



DW 

023 


;SEQ5 FRONT AGE3 

DW 

00 

jend 


Tbll_Macro39: 




DW 

040 


;SEQ6 FROOT AGE3 

CM 

00 

jend 


Tbll_Macro40: 




DW 

041 


;SE ta 7 FRONT AGE3 

DW 

003 



DW 

00 

;end 


Tbll_Macro41: 




DW 

042 



DW 

003 


;SEQ8 FRONT AGE3 

DW 

00 

; end 


Tbll_Macro42: 




DW 

043 


,-SEQlO FRONT AGE3 

DW 

001 



DW 

00 

; end 


Tbll_Macro43: 




DW 

044 


; St-Ql 1 FRONT AGE3 

DW 

00 

; end 



; 


A-H3 



Tbll_Macro44: 



DW 

045 


DW 

001 

;SEQ12 FRONT AGE3 (HEEY,TICKLE ME) ADD20 

DW 

00 

;end 

Tbll_Kacro45: 



DW 

001 


DW 

046 

;SEQ13 fRONT AGE3 (NANNY,NANNY) ADD20 

DW 

047 

,-RASBERHY HE HE HE 

DW 

00 

;end 


; 


Tbll_Macro4 6: 


DW 

003 


DW 

028 

.-SEQ14 FRONT AGE3 

DW 

003 


DW 

00 

; and 

Tbll_Macro47: 



DW 

034 

;SEC15 FRONT AGE3 

DW 

001 


DW 

00 

;end 

Tbll_Macro40: 



DW 

001 


DW 

048 


DW 

049 

;SECT6 FRONT AGE3 

DW 

00 

; end 

Tbll_Macro49: 



DW 

044 

;SEQ1 FRONT AGE4 

DW 

00 

;end 

; 

Tbll_Mncro50: 



DW 

001 


DW 

050 

; SEQ2 FRONT ACE4 

DW 

051 


DW 

00 

; end 

Tbll_Macro51: 



DW 

003 


DW 

052 

;SEC3 (VOU) FRONT AGE4 

DW 

050 


DW 

053 

;EE03 (ME) FRONT AGE4 

DW 

00 

jend 

Tbll_Macro52: 



EW 

026 


DW 

053 


DW 

054 


DW 

050 

;3EQ4 FRONT AGE4 

DW 

001 


DW 

00 

;end 

1 

Tbll_Macro53: 



DW 

007 


DW 

055 


DW 

056 

; SEQ5 FRONT AGE4 

DW 

00 

;end 

Tbll_Macro54: 




A-154 



DW 

026 



DW 

053 



DW 

054 



DW 

052 



DW 

018 


;SEQ6 FRONT AGE4 

DW 

00 

; end 



Tbll_Macro55: 


DW 

001 


DW 

046 


DW 

055 

;SEQ7 FRONT AGE4 

DW 

00 

;end 


Tbll_Macro5 6: 


DW 

026 


DW 

057 


DW 

050 


DW 

051 


DW 

058 


DW 

003 

;SEQ8 FRONT AGE4 

DW 

00 

; end 

Tbll_Macro57: 



DW 

042,001 

;SEQ9 FRONT AGE4 

DW 

00 

; end 


Tbll_Macro58: 


DW 

059 

;SEQ10 FRONT AGE4 

DW 

050 


DW 

00 

;end 


Tbll_Macro59: 


DW 

044 


DW 

003 

;SEQ11 FRONT AGE4 

DW 

00 

; end 


Tbll_Macro60: 


DW 

001 

;SEQ12 

DW 

00 

; end 

Tbll_Nacro61: 

DW 

001 


DW 

046 


DW 

047 

SEQ13 FRONT AGE4 

DW 

00 

;end 

Tbll_Macro62: 

DW 

026 


DW 

060 

; SE014 FRONT AGE4 

DW 

00 

; end 


Tbll_Macro63: 


DW 

061 


DW 

003 

SEQ15 FRONT AGE4 

DW 

00 

;end 


Tbll_Macro64: 


DW 

007 


DW 

051 

;SEQ16 FRONT AGE4 

DW 

00 

;end 


A-155 



•END GEORGE 07/03/98 


;GEORGE 07/04/98 
;START FORTUNE 

; 


Tbll_Macro65: 

DW 062 

DW 051 ;72 

DW 00 ;end 
l 

Tbll_Macro66: 

DW 003 

DW 063 

DW 003 

DW 00 [end 

Tbll_Macro67: 

DW 090 

DW 064 

DW 063 

DW 00 ;end 

; 

Tbll_Macro68: 

DW 065 

DW 063 

DW 00 ;end 

Tbll_Macro69: 

; DW 067 

• DW 068 

DW 053 

DW 066 

DW 063 

DW 00 ; end 

; 

Tbll_Macro70: 

DW 069 

DW 070 

DW 00 

Tbll_Macro71: 

DW 067 

DW 068 

DW 071 

DW 073 

DW 072 

DW 00 ; end 

Tbll_Macro72: 

DW 074 

DW 00 ;end 

Tbll_Macro73: 

DW 074 

DW 063 

DW 00 ;end 

; 

Tbll_Macro74: 


[FORTUNE 1 

[FORTUNE 2 

[94 

[FORTUNE 3 

[FORTUNE 4 

; MODIFIED FOR NAME DMH 
;FORTUNE 

[FORTUNE 5 

[FORTUNE 6 
,-end 

[FORTUNE 7 

[FORTUNE 8 

[FORTUNE 9 



DW 

069 

;FORTUNE 10 

DW 00 

; end 


TblX_Macro7 5: 

DW 

064 

;FORTUNE 11 

DW 

069 


DW 00 

; end 


Tbll_Macro76: 

DW 

073 


DW 

064 

.•FORTUNE 12 

DW 

069 


DW 00 

;end 


Tbll_Macro77: 


; MODIFIED TO WORK WITH NAME DMH 

i DW 

067 


; DW 

068 


DW 

053 

.•FORTUNE 13 

DW 

066 


DW 

069 


DW 00 

; end 



Tbll_Macro78: 


DW 

071 



DW 

073 



DW 

069 



DW 

075 

.•FORTUNE 14 


DW 00 

; end 



Tbll_Macro79: 




DW 

076 


• 

DW 

077 

; FORTUNE 15 


DW 

00 

; end 



Tbll_Macro80: 


DW 

076 


DW 

069 

.•FORTUNE 16 

DW 00 

; end 



Tbll_Macro81: 


DW 

078 

.•FORTUNE 17 

SEQ1 AOE2 

DW 00 

; end 



Tbll_Macro82: 

DW 

078 

.■FORTUNE 18 

SEQ2 AOE2 

DW 

063 



DW 00 

;end 



Tbll_Macro83: 

DW 

078 

.•FORTUNE 19 

SEQ2 AGE2 

EW 

069 



DW 00 

;end 




Tbll_Macro84 


;SPECIAL -O TWO MA" 

DW 

067 

1 

DW 

068 

; 

DW 

00 


;END GEOROE 1 

37/04/98 


; END FORTUNE 




A-157 



JSTART HANGOUT 
;GEORGE 07/04/98 
Tbll_Macro8S: 

DW 079 

DW 080 

DW 079 ;SEQ1 HANGING 

DW 080 

DW 00 j end 

Tbll_Macro86: 

DW 081 ;SEQ2 HANGING 

DW 081 

DW 00 ;end 

Tbll_Macro87: 

DW 082 

DW 083 

; DW 083 

DW 084 ;SEQ3 HANGING (YA DA DA OMPAH bRUMM BABABUHI 

DW 00 ; end 

I 

Tbll_Macro88: 

DW 085 

DW 085 

DW 086 

DW 087 ;SEQ4 HANGING (LA LA) 

DW 00 ;end 

Tbll_Macro89: 

DW oe7 

DW 088 ; SEQ5 HANGING 

DW 00 ;end 

Tbll_Macro90: 

DW 089 

DW 089 

DW 090 ;SEQ6 HANGING 

DW 091 

DW 092 

DW 00 ;end 

Tbll_Macro91: 

DW 093 ;SEQ7 HANGING (SOFTER) 

DW 093 

DW 093 

DW 094 

DW 00 ;end 

Tbll_Macro92: 

DW 095 

DW 095 

DW 055 ,-WAS 76 ;SE&8 HANGING 

DW 00 ;end 

I 

Tbll_Macro93: 

DW 096 ;SEQ9 HANGING 

DW 00 ;end 

l 


A-158 



Tbll_Macro94: 



DW 

097 

;SEQ10 HANGING 

DW 00 

; end 


Tbll_Macro95: 



DW 

098 

;SEQ11 AND SEC12 HANGING (SIGH) 

S 

o 

o 

;end 


Tbll_Macro9 6: 



DW 

099 

; SEQ13 HANGING (HAA) 

DW 00 

; end 


Tbll_Macro97: 



DW 

100 

;SEQ14 SEQ15 HANGING (hEEY) 

DW 00 

; end 


Tbll_Macro98: 



DW 

101 

; SEQ16 hANGINO IP ONE) 

DW 

102 


DW 

101 


DW 

101 


DW 

001 

; 20 

DW 

00 

; end 


Tbll_Macro99: 


DW 

089 

;SEQ6 HANGING AGE2 

DW 

089 


DW 

090 


DW 

091 


DW 

103 


DW 00 

; end 


Tbll_Macrol00: 

DW 

089 

;SEQ6 HANGING AGE2 

DW 

089 


Of! 

090 


DW 

105 


DW 

104 


DW 

103 


DW 00 

; end 


Tbll_Macrol01: 

DW 

087 


DW 

106 

;SEQ5 AGE3 4 

DW 00 

; end 


;END HANGOUT 

Tbll_Macrol02: 

DW 

107 

.•Fortune pause 

DW 00 

; end 


;END GEORGE 07/04/98 


;GEORGE 07/05/98 


;FEED TABLE 

Tbll_Macrol03: 

DW 

108 


DW 

110 

; SEQ2 FEED AGE1 

DW 

109 


DW 00 

; end 



A-1S9 



; 

Tbll_Macrol04: 


DW 

108 

DW 

111 

DW 

112 

DW 

109 

DW 00 

;end 

Tbll_Macrol0 5: 

DW 

108 

DW 

110 

DW 

113 

DW 

109 

DW 00 

;end 

Tbll_Macrol06: 

DW 

108 

DW 

108 

DW 

078 

DW 

110 

DW 

109 

DW 00 

; end 

Tbll_Macrol07: 

DW 

108 

DW 

105 

DW 

114 

DW 00 

;end 

Tbll_Macrol08: 

DW 

108 

DW 

115 

DW 

116 

DW 

117 

DW 

110 

o 

o 

g 

; end 

Tbll_Macrol09: 

DW 

076 

DW 

117 

DW 

120 

DW 

118 

DW 00 

; end 


) 

Tbll_MacrollO: 


DW 

108 

DW 

115 

DW 

20 

DW 

00 ;end 


Tbll_Macrolll: 

DW 108 

DW 109 

DW 00 ;end 

Tbll_Macroll2: 

DW 108 

DW 076 

DW 117 

DW 119 


;SEQ3 FEED AGE1 


;SEQ4 FEED AGE1 


;SEQ5 FEED AGE1 
; 127 


;SEQ6 FEED AGE1 
; 109 


;SEQ7 FEED AGE1 


;125 ;SEQ8 FEED AGE1 


; SEQ9 FEED AGE1 


;SEQ10 FEED AGE1 


;SEQ11 FEED AGE1 
; 125 


A-160 



DW 00 

; end 



Tbll_Macroll3: 




DW 

108 

;SEQ12 FEED AGE1 


DW 

108 



DW 

109 



DW 00 

;end 



Tbll_Macroll4: 




DW 

108 

;SEQ13 REUSE 10 FOR14 FEED AGE1 


DW 

115 



DW 

001 

; 20 


DW 00 

; end 



Tbll_Macroll5: 




DW 

108 

;SEQ15 FEED AGE1 


DW 

076 

; 125 


DW 

117 



DW 

119 



DW 

00 



Tbll_Macroll6: 




DW 

108 



DW 

108 



DW 

109 

;SEQ1 FEED AGE1 l) 


DW 00 

; end 



Tbll_Macroll7: 


;WIERD SHIT SEE 101 


DW 

108 



DW 

120 



DW 

109 



DW 00 

; end 




• 

end-AGE! 


Tbll_Macrol18: 




DW 

108 



DW 

121 



DW 

109 

;SEQ1 FEED AGE2 


DW 00 

,-end 



Tbll_Macroll9: 




DW 

108 



DW 

051 

;72 


DW 

109 

;SEQ2 FEED AGE2 


DW 00 

; end 



Tbll_Macrol20 s 




DW 

108 



DW 

073 

; 122 


DW 

112 



DW 

109 

;SEQ3 FEED AGE2 


DW 00 

; end 



Tbll_Macrol21: 




DW 

108 



DW 

051 

;72 


DW 

113 


, 

DW 

109 

;SEQ4 FEED AGE2 


DW 00 

; end 



Tbll_Macrol22: 


• 





A-161 




DW 

106 



DW 

106 



DW 

078 

; 127 

;SEQ5 FEED AGE2 

DW 

051 

;72 


EM 

109 



DW 00 

;end 



Tbll_Macrol23: 




EM 

108 



DW 

105 

; 109 


DW 

114 

; SEQ6 

FEED AGE2 

DW 00 

; end 



Tbll_Macrol24: 




DW 

108 



DW 

115 



DW 

116 



DW 

069 

; 118 

;SEQ7 FEED AGE2 

DW 

110 



DW 00 

; end 



Tbll_Macrol25: 




EM 

076 

; 125 


DW 

057 

; 78 


DW 

120 



DW 

118 

; SEQ8 

- - --GE2 

DW 00 

; end 



Tbll_Macrol26: 




DW 

108 



DW 

115 

; SEQ9 

FEED AGE2 

DW 

001 

; 20 


DW 00 

; end 



Tbll_Macrol27: 




DW 

108 



DW 

109 

;SEQ10 

FEED AGE2 

DW 00 

;end 



J 

; Macro_grp2 was here 




Tbl2_Macrol28: 
EM 

DW 

108 

076 

125 


DW 

069 

118 


DW 

119 

SEQ11 

FEED AGE2 

DW 00 ;end 

; 

; Kaero_grp2 was here 

Tbl2_Macrol29: 

DW 108 

DW 076 

125 


DW 

069 

lie 


DW 

119 

SEQ15 

FEED AGE2 

DiV 00 

; 

; end 




A-162 







Tbl2_Macrol30: 

DW 108 

DW 110 

DW 109 ;SEQ2 FEED AGE3 

DW 00 jend 

Tbl2_Macrol31: 

DW 108 

DW 111 

DW 072 ;143 

DW 109 ;SEQ3 FEED AGE3 

DW 00 t end 

Tbl2_Macrol32: 

DW 108 

DW 110 

DW 058 ;144 

DW 109 ; SEQ4 FEED AGE3 

DW 00 .-end 

Tbl2_Macrol33: 

DW 108 

DW 115 

DW lib 

DW 117 

DW 051 ;72 ;SEQ7 FEED AGE3 

DW 00 ;end 

Tbl2_Macrol34: 

DW 076 ;125 

DW 117 

DW 121 

DW 118 ;SEQ8 FEED AGE3 

DW 00 ;end 

Tbl2_Macrol35: 

DW 108 

DW 076 ; 125 

DW 117 ;SEQ11 FEED AGE3 

DW 122 

DW 00 ;end 

Tbl2_Macrol36: 

DW 108 

IA\’ 051 ; 72 

DW 109 

DW 00 ;end 

Tbl2_Macrol37: 

DW 108 

DW 073 ; 122 

DW 072 ;121 

DW 109 

DW 00 ;end 

Tbl2_Macrol38: 

DW 108 

DW 051 ;72 

DW 058 ;144 

DW 109 


A-163 




DW 00 

.-end 



I 

Tbl2_Macrol39: 




DW 

108 



DW 

108 



DW 

078 

; 127 


DW 

051 

;72 


DW 

109 



DW 00 

.-end 



I 

Tbl2„Macrol40: 




DW 

108 

; SEQ 6 


DW 

105 

; 109 


DW 

123 



DW 00 

; end 



1 

Tbl2_Macro’U: 




DW 

108 



DW 

115 



DW 

116 



DW 

057 

; 78 


DW 

051 

s72 


DW 00 

; end 



Tbl2_Maerol42: 




DW 

076 

; 125 


DW 

069 

; 118 


DW 

121 



DW 

118 



DW 00 

; end 



Tbl2_Macrol43: 




DW 

108 



DW 

125 



DW 

057 

; 78 


DW 

122 



DW 00 

.-end 



Tbl2_Macrol44: 




DW 

108 



DW 

125 



DW 

057 

; 78 


DW 

122 



DW 00 

; end 



Tbl2_Macrol45: 




EM 

108 



EM 

121 



DW 

109 



DW 00 

,-end 



;END FEED 




;END GEORGE 07/05/98 



JWAKE 




.-GEORGE 07/06/98 



Tbl2_Macrol46: 

;SG DONE 


DW 

124 

;02 


DW 

125 



DW 

126 



DW 

00 

; end 





A-164 



Tbl2_Macrol47: 

;SG DONE 

DW 


124 

DW 


125 

DW 


127 

DW 

00 

;end 

Tbl2_Macrol48: 

;SG DONE 

DW 


124 

DW 


128 

DW 


127 

DW 

00 

;end 

• 

Tbl2_Macrol49: 

;SG DONE 

DW 


124 

DW 


129 

DW 


055 ;•0c 

DW 

00 

; end 

Tbl2_Macrol50: 

;SG DONE 

DW 


124 

DW 


130 

DW 


131 

DW 


132 

DW 

00 

; end 

Tbl2_Macrol51: 

;SG DONE 

DW 


124 

DW 


130 

DW 


131 

DW 


123 ;*12 

DW 

00 

! end 

Tbl2_Macrol52: 

;SG DONE 

DW 


124 

DW 


130 

DW 


133 

DW 


132 

DW 

00 

; end 

Tbl2_Macrol53: 

; SG DONE 

DW 


124 

DW 


130 

DW 


133 

DW 


123 ;"12 

DW 

00 

; end 

Tbl2_Macrol54: 

;SG DONE 

DW 


124 

DW 


134 

DW 


135 

DW 


131 

DW 

00 

; end 

0 

Tbl2_Macrol55: 

; SG DONE 

DW 


124 

DW 


134 

DW 


136 

DW 


131 

DW 

00 

; end 


A-16S 



Tbl2_Macrol56: 

;SG DONE 

DW 

124 

DW 

134 

DW 

135 

DW 

133 

DW 00 

;end 

# 

Tbl2_Macrol57: 

; SG DONE 

DW 

124 

DW 

134 

DW 

136 

DW 

137 

DW 

133 

DW 00 

; end 

Tbl2_Macrol58: 

; SG DONE 

DW 

124 

DW 

138 

DW 

139 

DW 00 

; end 

Tbl2_Macrol59: 

;SG DONE 

DW 

124 

DW 

140 

; DW 

141 

DW 00 

.-end 

Tb 1 "’_Macrol60: 

;SG DONE 

DW 

124 

DW 

142 

DW 

143 

; DW 

141 

DW 00 

; and 

Tbl2_Macrol61: 

;SG DONE 

DW 

124 

DW 

144 

DW 

145 

DW 

146 

,DW 

141 

DW 00 

;end 

Tbl2_Macrol62: 

f SG DONE 

DW 

124 

DW 

147 

DW 

141 

DW 00 

; end 

J 

Tbl2_Macrol63: 

;SG DONE 

DW 

124 

DW 

148 

EM 00 

; enu 

2 

Tbl2_Mncrol64: 

;SG DONE 

DW 

124 

DW 

053 ;29 

DW 

149 

DW 

150 

DW 

00 ; end 


A-166 



Tbl2_Macrol65: ;SG DONE 

DW 124 

DW 151 

DW 00 i end 

Tbl2_Macrol66: ;SG DONE 

DW 124 

DW 152 

DW 131 

DW 153 

DW 154 

DW 00 ;end 

Tbl2_Macrol67: ;SG DONE 

DW 124 

DW 152 

DW 155 

DW 153 

EM 154 

DW 00 ; end 

Tbl2_Macrol68: 

DW 
DW 
; DW 
DW 
DW 
DW 

DW 00 

Tbl2_Kacrol69: ;EG DONE 

DW 124 

DW 053 ;”38 

DW 155 

DW 156 

CM 154 

DW 00 ; end 

;END WAKE 07/06/98 

;END GEORGE 

•GEORGE 0./06/98 

;HUNGER 

Tbl2_Macrol70: ;SG D-NE ;HUNGER 

DW 159 

DW 165 

DW 412 ; DMH 

DW 00 ; end 

Tbl2_Macrol71: ;SG DONE 

DW 160 

DW 165 

DW 412 ; DMH 

DW 00 ; end 

Tbl2_Macrol72: ;SG DONE 

DW 160 

DW 00 ; end 

Tbl2_>!acrol73s ;SG DONE 


;SG DO!4E 
124 
152 
153 
131 
156 
154 
: end 


A-167 





00 


;DMH 


DW 
DW 
DW 
DW 
DW 
I 

Tbl2_Macrol74: 

DW 

DW 

DW 

DW 

DW 00 

i2_Macrol75: 
DW 
DW 
DW 

DW 00 

Tbl2_Macrol7 6: 
DW 
DW 
DW 

DW 00 

Tbl2_Macrol77: 
DW 
DW 
DW 

DW 00 

Tbl2_Macrol78: 

DW 

DW 

DW 

DW 00 

Tbl2_Macrol79: 
DW 
DW 
DW 

DW 00 

; 

Tbl2_Macrol80: 
DW 
DW 


168 

159 
165 
412 

; end 

;SG DONE 

168 

160 
165 

412 ;DMH 

;end 

; SG DONE 

168 

160 

412 ;DMH 

; end 

;SG ..ONE 

163 

158 

159 

; end 

; SO DONE 

163 

158 

160 

; end 

;SG DONE 

163 

157 

159 
;end 

;SG DONE 

163 

157 

160 

; end 

;SG DONE 

163 

168 


DW 

DW 

DW 00 

Tbl2_Macrol81: 
DW 
DW 
DW 
DW 

DW 00 


159 
163 

; end 

;SG DONE 

163 

168 

160 
163 


Tbl2_Macrol82: 

DW 


;SG DONE 

163 


A-168 



00 


; DMH 


DW 
DW 
DW 
DW 
DW 
DW 
EW 

Tbl2_Macrol83: 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 00 

Tbl2_Macrol84: 
DW 
DW 
DW 
DW 
DW 

DW 00 

Tbl2_Macro185: 
DW 
DW 
DW 

DW 00 

Tbl2_Mocrol86: 

DW 

DW 

DW 

DW 00 

Tbl2_Macrol87: 
dw 
dw 

DW 

DW 00 

I 

Tbl2_Macrol88: 

DU 

DW 

DW 

DW 00 

Tbl2_Macrol89: 
DW 
DW 
DW 

DW 00 

I 

Tbl2_Macrol90: 
DW 
DW 
DW 


163 
168 
161 

159 
165 
412 

; end 

jSG DONE 

163 

163 

168 

161 

160 

165 

412 ;DMH 

; end 

;SG DONE 

163 
163 
168 
162 
160 
; end 

; SG DONE 

168 

161 

159 

; end 

;SG DONE 

168 

161 

160 
;end 

;SG DONE 

168 

162 

159 
;end 

iSG DONE 

168 

162 

160 

; end 

;SG DONE 

168 

166 
159 

;end 

; SG DONE 

168 

167 

159 


A-169 





; DMH 



Tbl2_Macrol9B: 
DW 
DW 
DW 

DW 00 

; 

Tbl2_Macrol99: 

DW 

DW 

DW 

DW 

DW 


;SO DONE 

168 
162 
160 
; end 

;SC DONE 

164 
168 
161 
159 

165 


A-170 



DW 00 

;end 


Tbl2_Macro200: 


; SG DONE 

DW 

164 


DW 

168 

; f 840 

DW 

162 


DW 

159 


DW 

165 


DW 00 

j end 


1 

Tbl2_Macro201: 


;SG DONE 

DW 

164 


DW 

168 

; 40 

DW 

162 


DW 

160 


DW 

165 


DW 00 

;end 


;END HUNGER 



;END GEORGE 07/06/98 


;INVERT 



;GEORGE 07/07/98 


Tbl2_Macro202: 

; SG 

DONE ; INVERT 

DW 

164 

; 64 

DW 00 

; end 


Tbl2_Macro203: 

; SG 

DONE 

DW 

164 

; 64 

DW 

169 


DW 00 

; end 


Tbl2_Macro204: 

;SG DONE 

DW 

164 

; 64 

DW 

lo8 

; 40 

DW 

174 


DW’ 

166 


DW 

175 


DW 00 

; end 


Tbl2_Macro205: 

;SG 

DONE 

DW 

164 

; 64 

DW 

176 


DW 00 

;end 


Tbl2_Macro206: 

;SG 

DONE 

DW 

188 


DW 

177 


DW 00 

; end 


Tbl2_Macro207: 

;SG DONE 

DW 

188 


DW 

178 


DW 00 

; end 


Tbl2_Macro208: 

;SG DONE 

DW 

170 


DW 

177 


DW 

177 



A-171 



DW 


00 


;end 


Tbl2_Macro209: 

; SO DONE 

DW 


170 

CM 


178 

EM 


177 

DW 

00 

; end 

Tbl2_Macro210: 

;SG DONE 

DW 


170 

DW 


177 

DW 


178 

DW 

00 

; end 

Tbl2_Macro2 

11: 

;SG DONE 

DW 


170 

DW 


178 

DW 


178 

DW 

00 

;end 

Tbl2_Macro2 

12: 

; SG DONE 

DW 


171 

DW 


163 ;63 

DW 

00 

; end 

Tbl2_Macro213: 

;SG DONE 

DW 


171 

DW 


166 ;40 

DW 


179 

DW 


180 

DW 


165 ;65 

DW 

00 

; end 

Tbl2_Macro214: 

;SG DONE 

DW 


171 

DW 


168 ;40 

DW 


181 

DW 


180 

DW 


165 ;65 

EM 

00 

; end 

Tbl2_Macro215: 

;SG DONE 

DW 


171 

DW 


168 

DW 


179 

DW 


182 

DW 


165 ;65 

CM 

00 

; end 

Tbl2_Macro216: 

; SG DONE 

DW 


171 

DW 


168 ;40 

DW 


181 

EM 


182 

CM 

00 

; end 

Tbl2_Macro217: 

; SG DONE 

CM 


164 ;64 

CM 


175 

DW 


164 ;64 


A-172 



DW 

00 

.-end 

Tbl2_Macro218 : 

;SG DONE 

DW 


164 ; 64 

DW 


183 

DW 


164 ;64 

DW 

00 

;end 

Tbl2_Macro219: 

;SO DONE 

DW 


164 ;64 

DW 


170 

DW 


170 

DW 

00 

; end 

Tbl2_Macro220: 

;SG DONE 

DW 


171 

DW 


179 

DW 


180 

:w 

00 

; end 

Tbl2_Hacro221: 

;SG DONE 

DW 


171 

DW 


181 

DW 


180 

DW 

00 

; end 

Tbl2_Macro222 : 

; S3 DONE 

DW 


171 

DW 


179 

DW 


184 

DW 


163 ; 63 

DW 

00 

; end 

Tbl2_Macro223 : 

;SG DONE 

DW 


171 

TV-’ 


181 

DW 


185 

DW 

00 

; end 

Tbl2_Macro2 

24 : 

; SG DONE 

DW 


164 ; 64 

DW 


179 

DW 


186 

DW 

00 

; end 

Tbl2_Mairo225 : 

;SG DONE 

DW 


164 ; 64 

DW 


181 

DW 


186 

DW 

00 

; end 

Tbl2_Macro22o : 

;SG DONE 

DW 


164 ; 64 

DW 


181 

DW 


185 

DW 

00 

;end 

Tbl2_Macro227: 

;SG DONE 

DW 


164 ;64 

DW 


181 


A-173 



DK 


184 


DW 


163 ; 63 


DW 

00 

; and 


Tbl2_Mocro22B: 

;SG DONE 


DW 


164 ;64 


DW 


179 


DW 


187 


DW 

00 

; end 


i 

Tbl2_Macro229: 

,-SG DONE 


DW 


164 ;64 


DW 


181 


DW 


187 


DW 

00 

; end 


Ttl2_Macro230: 

;SG DONE 


DW 


172 


DW 


158 


DW 


178 


DW 

00 

; end 


Tbl2_Macro231: 

;SG DONE 


DW 


164 ;64 


DW 


181 


DW 


189 


DW 

00 

; end 


Tbl2_Macro2 3 2: 

; SG DONE 


DW 


172 


DW 


175 


DW 

00 

; end 


Tbl2_Macro233: 

; SG DONE 


DW 


172 


DW 


183 


DW 

00 

; end 


Tbl2_Macro2 

34 : 

;SG DONE 


DW 


172 


DW 


172 


DW 


164 ;64 


DW 

00 

; end 


i 

Tbl2_Macro235: 

;SG DONE 


CM 


173 


DW 

00 

;end 


Tbl2_Macro236: 

,-SG DONE 


DW 


190 


DW 

00 

; end 


• 

Tbl2 Macro237: 

;SG DONE 


DW 


191 


DW 

00 

; end 


# 

Tbl2__Macro238: 

; SG DONE 


DW 


192 


DW 

00 

; end 


;FND GEORGE 

07/07/98 





A-174 



;END INVERT 


;QEOROE 07/07/98 

; BACK 

Tbl2_Macro239: ,-BACKSG ;SGDON r 

DW 193 

DW 193 

DM 00 ; end 

Tbl2_Macro240: ;SGDONE 

DW 193 

DW 194 

DW 195 

DW 00 .-end 

Tbl2_Macro241: ;SGDONE 

DW 193 

DW 196 

DW 195 

DW 00 ; end 

Tbl2_Macro242: ;SGDONE 

DW 193 

DW 194 

DW 197 

DW 00 ;end 

Tbl2_Macro243: ,S ONE 

DW 193 

DW 196 

DW 197 

DW 00 ; end 

Tbl2_Macro244: jSGDONE 

DW 198 

DW 199 

DW 200 

DW 201 

DW 00 ;end 

Tbl2_Macro2 4 5: ;SGDONE 

DW 198 

DW 199 

DW 202 

DW 201 

DW 00 .-end 

Tbl2_Macro246: ;SGDONE 

DW 198 

DW 199 

DW 200 

DW 184 ;148 ;212 

DW 00 ; end 

Tbl2_Macro247: ;SGDONE 

DW 198 

DW 199 

DW 202 

DW 184 ;148 ;212 

DW 00 .-end 


A-175 



;SGDONE 


Tbl2_Macro248: 

DW 198 

DW 198 

DW 00 ;end 

) 

Tbl2_Macro249: ;SGDONE 

DW 198 

DW 203 

DW 204 

DW 00 i end 

Tbl2_Macro25J: ; SGDONE 

DW 198 

DW 205 

DW 206 

DW 207 

DW 204 

DW 00 ; end 

Tbl2_Macro251: ;SGDONE 

DW 198 

DW 205 

DW 208 

DW 233 

DW 204 

DW 00 ;end 

Tbl2_Macro2 52: ;SGDONE 

DW 198 

DW 205 

DW 206 

DW 233 

DW 204 

DW 00 ; end 

Tbl2_Macro253: ;SGDONE 

DW 198 

DW 209 

DW 210 

DW 00 ; end 

Tbl2_Macro254: ;SGDONE 

DW 198 

DW 209 

DW 211 

DW 212 

DW 213 

DW 00 jend 

; 

Tbl2_Macro255: .-SGDONE 

DW 198 

DW 209 

DW 214 

DW 00 ; end 

Tbl3_Macro2 56: ;SGDONE 

DW 198 

DW 215 

DW 216 


A-176 



; end 


DW 

DW 

Tbl3_Macro257: 
DW 
DW 
DW 
DW 

DW 00 

Tbl3_Macro258: 

DW 

DW 

DW 

DW 

DW 

DW 

DW 00 

Tbl3_Macrc259: 
DW 
DW 
DW 
DW 
DW 
DW 
DW 

Tbl3_Kacro260: 
DW 
DW 
DW 
DW 
DW 
DW 

DW 00 

Tbl3_Macro261: 
DW 
DW 

DW 00 

Tbl3_Macro2€2: 
DW 
DW 
DW 

DW 00 

Tbl3_Macro263: 
DW 
DW 
DW 

DW 00 

Tbl3_Macro264: 
DW 
DW 
DW 

DW 00 

; 


217 

00 


;SGDONE 

198 

215 

216 
218 

; end 

;SGDONE 

219 

220 
209 
217 

199 
234 

; end 

;SGDONE 

219 

220 
209 
205 

217 
234 

00 ;end 

;SGDONE 

219 

220 
209 
205 

218 
234 

; end 

; SGDONE 

221 
222 
; end 

;SGDONE 

221 

223 
222 

; end 

;SGDONE 

198 

224 

199 

; end 

; SGDONE 

198 
224 
205 
; end 


A-177 



;SGDONE 


Tbl3_Macro265: 

DW 198 

DW 225 

DW 205 

DW 00 ; end 

Tbl3_Macro266: 

DW 226 

DW 201 

DW 00 ;end 

I 

Tbl3_Macro267: 

DW 198 

DW 227 

DW 227 

DW 228 

DW 229 

DW 00 ;end 

Tbl3_Macro268: 

DW 198 

DW 227 

DW 227 

DW 230 

DW 229 

DW 00 ; end 

Tbl3_Macro269: 

DW 198 

DW 194 

DW 19» 

DW 00 ;«.d 

Tbl3_Macro2 0: 

DW 198 

DW 19. 

DW 205 

DW 00 ;end 

Tbl3_Macro271: 

DW 198 

DW 196 

DW 205 

DW 00 ,-end 

Tbl3_Macro272: 

DW 198 

DW 235 

DW 231 

DW 199 

DW 00 ;end 

Tbl3 _Macro273: 

DW 198 

DW 235 

DW 231 

DW 205 

DW 00 ;end 

; 

Tbl3_Macro274: 


; SGDONE 


; SGDONE 


;SGDONE 


;SGDONE 


;SGDONE 


; SGDONE 


;SGDONE 


; SGDONE 


;SGDONF 


A-178 



DW 198 

DW 235 

DW 232 

DW 205 

DW 00 send 

I 

Tbl3_Macro275s ;SGDONE 

DW 198 

DW 236 

DW 232 

DW 205 

DW 00 send 

;END GEORGE 07/07/98 
;END BACK 

;GEORGE 07/08/98 
; SICK 


Tbl3_Macro276: ;SJ DONE sSI'-KS 

DW 237 

DW le& ;135 ;40 

DW 117 ; 41 

DW 238 

DW OP ; end 

Tbl3_Macro277: 

DW 
DW 
DW 
DW 

DW 00 

Tbl3_Macro278 s 
DW 
dw 
DW 
DW 

DW 00 

Tbl3_Macro279: ;SG DONE 

DW 237 

DIM 53 ; 45 

DW 239 

DW 240 

DW 70 send 

l 

Tbl3_Macro280: ;SG DONE 

DW 237 

DW 241 

DW 00 send 

Tbl3_Macro281: ;SG DONE 

DW 237 

DW 242 

DW 00 send 

I 

Tbl3_Macro282: ;SG DONE 

DIM 237 

DW 243 


;SG DONE 

237 

168 s135 ;40 

239 

238 

S end 

;SG DONE 
237 

168 si 35 ;40 

117 s 41 

240 

S end 


A-179 




00 


DW 
DW 

Tbl3_Macro283: 

DW 

EM 

EM 

DW 00 

; 

Tbl3_Macro284: 

EM 

DW 

DW 

EM 00 

; 

Tbl3_Macro285! 
DW 
EM 
DW 
DW 

Tbl3_Macro286: 

DW 

EM 

EM 

EM 00 

Tbl3_Macro287: 

DW 

DW 

EM 

DW 00 


244 

;end 

; SG DONE 
250 

1X7 ;41 

245 
send 

; SG DONE 
250 
239 

245 
send 

S SG DONE 
250 
239 

182 s51 

00 send 

S SG DONE 
237 

246 
250 

; end 

;SG DONE 
237 

247 
250 

send 


Tbl3_Macro288: 
DW 

DW 00 


) 

Tbl3_Macro289: 
DW 
DW 
DW 

DW 00 


; SG DONE 
237 
; end 

S SG DONE 
237 

248 

250 


; 

Tbl3_Macro290: 
DW 
DW 
DW 

; 

Tbl3_Nacro291: 

DW 

DW 

DW 00 


;SO OONE 
237 

249 

00 ;end 

;SG DONE 

250 
250 

send 


; 

Tbl3_Macro292: sSO DONE 

DW 250 

DW 248 

EM 00 s end 
SEND SICK 

;END GEORGE 07/08/98 


A-180 



;GEORGE 07/08/98 
;LIGHT 

Tbl3_Macro293: 

DW 251 

DW 00 .-end RB 

;Tbll_Macro294: 

; DW 263 

I DW 00 end RB 

Tbl3_Macro294: 

DW 252 

DW 00 ; end RB 

Tbl3_Macro295: 

DW 253 

DW 00 ;end RB 

Ttl3_Macro296: 

DW 254 

DW 00 send RB 

Tbl3_Macro297: 

DW 255 

DW 00 send RB 

Tbl3_Macro298: 

DW 256 

DW 00 send 

Tbl3_Macro299: 

DW 257 

DW 00 send 

Tbl3_Macro300: 

DW 258 

DW 00 ; end 

Tbl3_Macro301: 

DW 259 

DW 00 s end 

Tbl3_Macro302: 

DW 260 

DW 00 s end 

Tbl3_Macro303: 

DW 261 

DW 00 s end 

Tbl3_Macro304: 

DW 262 

DW 00 s end 

Tbl3_Macro305 s 

DW 263 

DW 00 s end 

l 

Tbl3_Macro306: 

DW 264 


A-181 



DW 00 ;end 

; 

Tbl3_JMacro307: 

DW 265 

DW 00 ; end 

;END GEORGE 07/08/98 
;END LIGHT 
;GEORGE 07/08/98 
; DARK 


Tbl3_Macro308: 

DW 

DW 00 

Tbl3_Macro309! 
DW 

DW 00 

Tbl3_Macro310: 
DW 

DW 00 

Tbl3_Macrc3U: 

DW 

DW 00 

Tbl3_Macro312: 

DW 

DW 00 

Tbl3_Macro313: 
DW 

DW 00 

TbI3_Macro314: 
DW 

DW 00 

Tbl3_Macro315: 
DW 

DW 00 

TbI3_Macro316: 
DW 
DW 

Tbl3_Macro317i 

DW 

DW 00 


Tbl3_Macrc318: 
DW 

DW 00 

; 

Tbl3_Jlacro319: 
DW 

DW 00 

I 

Tbl3_Macro320: 

DW 


266 
; end 

267 

i end 

268 

; end 

269 

; end 

270 

; end 

271 

; end 

272 
;end 

273 
;end 

274 

00 ;end 

275 
;end 

276 
;end 

277 
;end 

278 


A-182 




DW 


00 


; end 


Tbl3_Macro321: 

DW 279 

DW 00 ;end 

TbX3_Macro322: 

DW 280 

DW 00 jend 

Tbl3_Macio323: 

DW 281 

DW 00 ;end 

Tbl3_Macro324: 

DW 282 

DW 00 

Tbl3_Macro325: 

DW 283 

DW 00 ; end 

Tbl3_Hacro326: 

DW 284 

DW 00 ; end 

Tbl3_Macro327: 

DW 285 

DW 00 ;end 

Tbl3_Macro328: 

DW 286 

DW 00 ; end 

Tbl3_Macro329: 

DW 287 

DW 00 :end 

Tbl3_Macro330: 

DW 288 

DW 00 ; er.d 

; 

Tb _Macro331: 

DW 289 

DW 00 ; end 

;END DARK 

(END GEORGE 07/08/98 

(GEORGE 07/08/98 

(SOUND 

Tbl3_MacroJ32: 

DW 290 (Sl-Al/S9-A1/S1-A2 SOUND js 

DW 00 (end 

Tbl3_Macro333: 

DW 291 (S2-A1/S10-A1/S2-A2 SOUND js 

DW 00 ,• end 

Tbl3_»acro334: 


A-183 



DW 292 ;S3-A1/S11-A1 SOUND js 

DW 00 ;end 

; 

Tbl3_Macro335: 

DW 293 ;S4-A1/S12-A1 SOUND js 

DW 00 .-end 

Tbl3_Macro3 3 6: 

DW 310 

EW 294 ;S5-A1/S13-A1 SOUND (with say/m2) js 

DW 00 .-end 

Tbl3_Mncro337i 

DW 295 ;S6-A1/S14-A1 SOUND js 

DW 00 ; end 

Tbl3_Macro338: 

DW 310 

DW 296 ;S7-A1/S15-A1 SOUND (with say/m2) js 

DW 00 ;end 

Tbl3_Macro339: 

DW 297 ;S8-A1/S16-A1 SOUND js 

DW 00 ;end 

Tbl3_Macro340: 

DW 298 ;S3-A2 SOUND js 

DW 00 ;end 

Tbl3_Macro341: 

DW 299 ;S4-A2 SOUND js 

DW 00 ;end 

Tbl3_Macro342: *. 

DW 310 

DW 300 ;S5-A2 SOUND (with say/m2) js 

DW 00 ;end 

; 

Tbl3_Macro343: 

DW 310 

DW 301 ;S7-A2 SOUND (with say/m2) js 

DW 00 ;end 

I 

Tbl3_Macro344: 

DW 302 ;S8-A2 SOUND js 

DW 00 ;end 

; 

Tbl3_Macro345: 

DW 303 ;S3-A3 SOUND js 

DW ,o /end 

; 

Tbl3_Macro346: 

DW 304 ;S4-A3 SOUND js 

DW 00 ; end 

; 

Tbl3_Macro347: 

DW 310 

DW 305 ;S7 A3 SOUND (with say/m2) js 

DW 00 ,-end 

1 


A-184 



Tbl3_Macro348: 

DW 306 

DW 00 ; end 

I 

Tbl3_Macro349: 

DW 307 

DW 00 ; end 

I 

Tbl3_Hacro350: 

DW 308 

DW 00 .-end 

Tbl3_Macro3Sl: 

CW 309 

DW 00 ; end 


END GEOROE 07/08/98 
END SOUND 


; TILT *. 

;GEORGE 07/09/93 
Tbl3_Macro352: 

DW 

DW 00 


310 
; end 


Tbl3_Macro353: 

DW 311 

DW 00 .-end 

Tbl3_Macro354: 

DW 312 

DW 00 ; end 

Tbl3_Macro355: 

DW 313 

DW 00 j end 

; 

Tbl3_Macro3S6: 

DW 314 

DW 00 ; end 

Tbl3_Macro357: 

DW 315 

DW 00 ; end 

; 

Tbl3_Macro358 i 

DW 313 

DW 316 

DW 00 ; end 

; 

Tbl3_Macro359: 

DW 317 

DW 00 ; end 

Tbl3_Macro360s 

DW 318 

DW 00 ; end 


Tbl3_Macro36l! 


;S1-A4 SOUND js 

;S3-A4 SOUND js 

;S6-A4 SOUND js 

;S8-A4 SOUND js 

;S1 A1 TILT/S4 A1 TILT js 

:S2 A1 TILT js 

;S3 A1 TILT js 

;S5 A1 TILT js 

;S6 A1 TILT js 

;S7 A1 TILT js 

;S8 A1 TILT js 

;S9 A1 TILT js 

;S10 A1 TILT js 


A-18S 




DW 310 

DW 319 

DW 00 ; end 

Tbl3_Macro362: 

DW 320 

DW 00 ; end 

I 

Tbl3_Macro363: 

DW 321 

CW 00 ; end 

i 

Tbl3_Macro364: 

DW 322 

DW 00 ;end 

Tbl3_Macro365 s 

DW 323 

DW 00 ; end 

I 

Tbl3_Macro366: 

DW 324 

DW 00 ; end 

I 

Tbl3_Macro367: 

DW 324 

DW 325 

DW 00 ;end 


Tbl3_Macro368: 

DW 326 

DW 00 .-end 


Tbl3_Macro369: 

DW 313 

DW 327 

DW 00 ; end 

I 

Tbl3_Macro370: 

DW 313 

DW 328 

DW 00 ; end 

; 

Tbl3_J4acro371: 

DW 310 

DW 329 

EW 00 ; end 


Tbl3_Macro372: 

DW 330 

DW 00 i end 

Tb±.:_Macro373: 

DW 313 

DW 331 

DW 00 ; end 

; 

Tbl3_Macro374: 

DW 332 

DW 00 ;end 


;S11 A1 TILT js 

;S12 A1 TILT js 

.S13 A1 TILT j« 

;SI5 A1 TILT js 

;S16 A1 TILT js 

;S1 A1 TILT js 

;S2 A1 TILT js 

;S5 A2 TILT js 

;S7 A2 TILT js 

;Sb A2 TILT js 

;S11 A2 TILT js 

;S12 A2 TILT js 

;SI3 A2 TILT js 

;S12 A2 TILT js 


A-186 



Tbl3_Macro375: 

DW 333 

DW 00 ;end 

Tbl3_Macro376: 

DW 334 

DW 00 ; end 

Tbl3_Macro377: 

DW 334 

DW 335 

DW 00 ; end 

Tbl3_Macro378: 

DW 336 

DW 00 send 

Tbl3_Macro379: 

DW 313 

DW 337 

DW 00 ;end 

Tbl3_Macro380: 

DW 313 

DW 338 

DW 00 ; end 

Tbl3_Macro381: 

DW 339 

DW 00 ;end 

Tbl3_Macro3£2: 

DW 317 

DW 340 

DW 00 ;end 

Tbl3_Macro383: 

DW 341 

DW 00 ;end 

Tbl4_Macro384: 

DW 310 

DW 329 

DW 342 

DW 00 ;end 

Tbl4_Macro385: 

DW 313 

DW 343 

DW 00 ; end 

Tbl4_Macro386: 

DW 313 

DW 344 

DW 00 ;end 

J 

Tbl4_Macro387: 

DW 334 

DW 345 


A-187 



DW 00 ;end 

; 

Tbl4_Macro388: 

DW 346 

DW 00 ;end 

; 

Tbl4_Macro389: 

DW 313 

DW 347 

DW 00 ; end 

Tbl4_Macro390: 

DW 310 

DW 348 

DW 00 ;end 

Tbl4_Macro391: 

DW 313 

DW 349 

DW 00 ; end 

Tbl4_Macro392: 

DW 313 

DW 350 

DW 00 ;er.d 

;END TILT 

;END GEORGE 07/09/98 

; IR 

;GEORGE 07/09/98 

Tbl4_Macro393: 

DW 351 

DW 00 ;end 


; 

Tbl4_Macro394: 

DW 352 seq5, IR agel 

DW 00 ;end 

1 

Tbl4_Macro395: 

DW 353 seq6, IR agel 

DW 354 

DW 00 ,• end 

J 

Tbl4_Macro396: 

DW 356 ;seq7 ir agel 

DW 355 

DW 00 ;end 

; 

Tbl4_Macro397 s 

DW 357 ;seqS ir agel 

DW 00 ;end 

l 

Tbl4_Macro398: 

DW 358 ;seq9 ir agel 

DW 00 ; end 

; 

Tbl4_Hacro399: 

DW 359 ;seq 10,360 ir agel 

DW 00 ; end 


A-188 




Tbl4_Macro400: 
DW 

DW 00 

Tbl4_Macro401: 

DW 

DW 00 

; 

Tbl4_Macro402: 

DW 

DW 00 

Tbl4_Macro403: 
DW 

DW 00 

Tbl4_Macro404: 
DW 

DW 00 

Tbl4_Macro405: 

DW 

DW 00 

Tbl4_Macro406: 

DW 

DW 00 

Tbl4_Macro407: 
DW 

DW 00 

Tbl4_Macro408: 
DW 

DW 00 

Tbl4_Macro409: 
DW 

DW 00 

Tbl4_Macro410: 
DW 

DW 00 

Tbl4_Macro411: 

DW 

DW 00 

Tbl4_Macro412: 
DW 

DW 00 

Tbl4_Hacro413: 
DW 

DW 00 

Tbl4_Macro414: 

DW 

DW 00 


360 
; end 


361 
: end 


362 

;end 


363 
; end 


364 
; end 


365 
; end 


366 
; end 


367 

.-end 


368 
; end 


369 
; end 


370 

;end 


371 
;end 

372 

; end 


373 

;end 


374 

;end 


;seql2 ir agel,age2,age,3 


;seql3,14 ir agel 


;seql5 ir agel 


;seql6 ir agel 


;seql.2,3 ir age2 


;seq4.5 ir age2 


;seq6 ir age2 


;seq7,8 ir age 2 


;seq9 ir age2 


;seqlO ir age2 


;seqll ir age2 


;seql3,14 ir age2 


;seql5 ir age2 


;seql6 ir age2 


;seql,2,3,4.5 ir age3 


A-m 



Tbl4_Macro415: 

DW 

DW 00 

375 
; end 

;seq6 ir age3 


Tbl4_Macro416: 

DW 

DW 00 

376 
; end 

;seq7,8 ir age3 


Tbl4_Macro417: 
DW 

DW 00 

377 
; end 

;seq9 ir age3 


Tbl4_Macro418: 
DW 

DW 00 

378 
; end 

;seqll ir age3 


Tbl4_Kacro419: 

DW 

DW 00 

379 
; end 

;seql3,14 ir age3 


Tbl4_Macro420: 
DW 

DW 00 

380 
; end 

;seql5 ir age3 


TbX4_Macro421: 
DW 

DW 00 

381 

;end 

;seql,2,3,4.5 ir age4 


Tbl4_Macro422: 
DW 

DW 00 

382 
; end 

;seq6 ir age4 


Tbl4J4acro423 : 
DW 

DW 00 

383 
; end 

;seq7.8 ir age4 

* 

Tbl4_Macro424: 
DW 

DW 00 

384 
; end 

;seq9 ir age4 


1 

Tbl4_Macro425: 
DW 

DW 00 

385 
; end 

;seqlO ir age4 


Tbl4_Macro426: 
DW 

DW 00 

386 

;end 

;8oqll ir age4 


Tbl4_Macro427: 
DW 

DW 00 

387 

;end 

;seql2 ir age4 


Tbl4_Macro428: 
DW 

DW 

DW 

DW 00 

389 

388 

389 
;end 

;seql4 ir age4 


Tbl4_Macro429: 



A-190 



DW 389 ;seqlS ir age4 

DW 390 

DW 00 ; ond 

;END GEORGE 
;END IR 


; START FURBY SAYS DHH 


Tbl4_Macro430: 

DW 50 

DW 00 

; TICKLE 
; end 



Tbl4_Macro431: 

DW 196 

DW 00 

; PET 
; end 



Tbl4_Macro432: 

DW 71 

DW 00 

; SOUND 
; end 



Tbl4_Macro433: 

DW 391 

DW 00 

; LIGHT 
;end 



Tbl4_Macro434: 

DW 198 

DW 00 

; soft purr 
; end 



Tbl4_Macro435: 

DW 392 

DW 00 

; no light 
; end 



Tbl4_Macro43 6: 

DW 393 

CW 00 

; loud sound 
; end 



Tbl4_Macro437: 

DW 115 

DW 00 

; burp (hide 
;end 

and 

seek) 

Tbl4_Macro438 : 

DW 116 

DW 00 

; sigh (hide 
;end 

and 

: eek) 

Tbl4_Macro439: 
dw 
dw 
dw 

; win sound 

376 

376 

367 

(dnh) 


DW 00 ;end 

; END FURBY SAYS DHH 


; 

; start diagnostic tables 
Tbl4_Macro440: 

DW 400 
DW 00 ;end 

I 

Tbl4_Macro441: 

DW 401 
DW 00 ; end 


; start diagnostic beeps 


; press key beep 


A-191 



; end 


; pass beep 


Tbl4_Macro442: 

DW 402 

DW 00 

Tbl4_Macro443: 

DW 403 

DW 00 ; end 

Tbl4_Macro444: 

DW 404 

DW 00 ; end 

Tbl4_Macro445: 

DW 405 

DW 00 ; end 

Tbl4_Macro446: 

DW 406 

DW 00 ; end 

Tbl4_Macro447: 

DW 407 

DW 00 ;end 

Tbl4_Macro448: 

DW 408 

DW 00 ; end 

Tbl4_Macro449: 

DW 409 

DW 00 ; end 

Tbl4_Macro450: 

DW 410 

DW 00 ;end 


; fail beep 

; speaker test tone 

; motor cal 

; feedl 

; feed2 

; light 

; sound 

; go to sleep 


; end of diagnostic tables dish 
I 

Tbl4_Macro451: 

DW 117 ; HIDE AND SEEK SOUND DHM 

DW 00 ;end 

Tbl4_Macro452: 

DW 118 ; HIDE AIrt) SEEK SOUND DHM 

DW 00 ; end 

Tbl4_Macro453: 

DW 
DW 
DW 

DW 00 

Tbl4_Macro454: 

DW 399 

DW 395 

DW 396 

DW 00 ;end 

; 

Tbl4_Macro455: 


delay 
ME DHM 

NAME -MEME- DMK 


399 

; delay 

395 

; ME DHM 

110 

; NAME -KOKO- DMH 


; end 


A-192 





00 


DW 

DW 

DW 


399 

395 

112 

;end 


delay 

ME 

NAME *E-DAY" DMH 


Tbl4_Macro456: 


DW 

399 

j delay 

DW 

395 

; ME 

DW 

391 

; NAME "DO-MOH" DMH 

EW 

00 

; end 

Tbl4_Macro457: 
DW 

399 

; delay 

EW 

395 

; ME 

DW 

114 

; NAME -TO-TYE- DMH 

DW 00 

; end 



Tbl4_Macio458: 


DW 

399 

; delay 

DW 

395 

; ME 

DW 

117 

; NAME "BOO* DHM 

DW 00 

; end 



Tbl4_Macro459: 


DW 


399 

delay 

DW 


395 

ME 

DW 


398 

NAME -TOH-LOO- DHM 

DW 

00 

; end 


Tbl4_Macro460: 



DW 


399 

delay 

DW 


395 

ME 

DW 


120 

NAME -A-TAY- DHM 

DW 

00 

; end 



Tbl4_Macro461: 


DW 

399 

; delay 

DW 

395 

; ME 

DW 

131 

; NAME -WAY-LOH- DMH 

DW 00 

; end 



Tbl4_Macro462: 


DW 

399 

; delay 

DW 

395 

; ME 

DW 

143 

; NAME -U-TYE- 

DW 

00 



Tbl4_Macro463: 


DW 

399 

j delay 

DW 

395 

; ME 

DW 

145 

; NAME -A-LOH- DMH 

DW 00 

; end 


Tbl4_Macro464: 

DW 

399 

; delay 

DW 

395 

; ME 

DW 

152 

; NAME -KA- DMH 

DW 00 

; end 


Tbl4_Macro465: 

DW 

399 

; delay 


A-193 










DW 

395 

; ME 

an 

an oo 

166 
; nd 

; NANF -DAH- DMH 


; 

Tbl4_Macro466: 


DW 

3*9 

; delay 

an 

3. . 

; ME 

an 

175 

: NAME 'BOH-BAY' DMH 

an oo 

;end 


Tbl4_Macro467: 

DW 

399 

; delay 


395 

; ME 

an 

177 

; NAME -NAH-BAH- DMH 

an oo 

; end 


Tbl4_Macro468: 

DW 

129 

; dodle do, love 

Or! 

129 


an 

151 


an oo 

; end 


Tbl4_Macro469: 


; SING A SONG DMH 

DW 

219 


a-: 

220 


; EW 

219 


; DW 

220 


; DW 

219 


; DW 

220 


DW 00 

; end 


Tbl4_Ma ro470: 


; B'JKB A1TACK DMH 

an 

115 


DW 

115 


DW 

115 


DW 

115 


DW 

115 


DW 

115 


an 

15 


an 

115 


DW 00 

; end 


* 

Tbl4_Macro471: 


; WIN SOUND DMH 

DW 

313 


DW 

336 


DW 

376 


DW 00 

; end 



I 

Tbl4_Macro472: 


DW 46 


DW 00 

; end 


rbl4_Macro473: 


; ME DONE (DMH) 

DW 

53 


DW 

123 


DW 00 

;end 



Tbl4_Macro474: ; LISTEN ME (DMHI 

DW 394 


A-194 




DW 53 

DW 00 ; end 

Tbl4_Macro475: 

DW 411 
DW 00 ;end 

Tbl<_rtacro476: 


DW 


399 

delay 

DW 


395 

ME 

DW 


186 

NAME -LOO-LOO" DKH 

DW 

00 

; end 


Tbl4_Macro477: 
CM 

399 

delay 

DW 


395 

ME 

DW 


194 

NAME ’AH-MAV DMH 

DW 

00 

; end 


Tbl4_Macro47B: 

DW 

399 

delay 

DW 


395 

ML 

DW 


201 

NAME -MOO-LOO* DMH 

DW 

00 

; end 


Tbl4_Macro479: 

DW 

399 

delay 

DW 


395 

ME 

DW 


208 

ME 'MAY-MAY H 

DW 

00 

,-ena 



Tbl4_Macro480: 


DW 

399 

delay 

DW 

395 

ME 

DW 

224 

NAME -MAY-LAH' DMH 

DW 00 

; end 


Tbl4_Macro481: 

DW 

399 

delay 

DW 

395 

ME 

DW 

228 

DAH-NOH-LAH 

DW 00 

; end 


Tbl4_Macro482: 

DW 

399 

delay 

DW 

395 

ME 

DW 

398 

NAME "TJH-LOO-KAH- DMH 

DW 

152 


DW 00 

; end 



I 

Tbl4_Macro483: 


DW 

399 

; delay 

DW 

395 

; ME 

DW 

152 

; KA-DA 

DW 

166 


DW 00 

; end 



; 

Tbl4_Macro484: 


EM 

399 

; delay 

DW 

395 

; ME 


A-195 









DW 224 . MAY-LAH-KA 

DW 152 

DW 00 ; end 

»bl4_Macro485: 

DW 4 

DW 00 ;ana 

J 

Tbl4_Macro486: 

DW 4 

DW 00 ;end 

Tbl4_Macro487: 

DW 

DW 00 j end 

Tbl4_Macro488: 

DW 4 

DW CO ;end 

Tbl4_Macro489: 

DW 4 

DW 00 ;end 

Tbl4_Kacro490: 

DW 4 

DW 00 ;end 

Tbl4_Macro49’ : 

DW 4 

DW 00 ;end 

Tbl4_Macro492: 

DW 4 

DW 00 ;end 

Tbl4_M icro493: 

DW 4 

DW 00 ;end 

Tbl4_Macro494: 

DW 4 

DW 00 ;end 

Tbl4_Macro495: 

DW 4 

DW 00 ; end 

Tbl4_Macro496: 

DW 4 

DW 00 ;end 

Tbl4_Macro497: 

Dl-.’ 4 

DW 00 ;end 

Tbl4_Macro498: 

DW 4 

DW 00 ;end 

; 


A-196 



;end 


Tbl4_Macro499: 

DW 4 
DW 00 

Tbl4_Macro500: 

DW 4 
DW 00 ;end 

Tbl4_Macro501: 

EW 4 

DW 00 ;end 

Tbl4_Macro502: 

DW 4 

DW 00 ; end 

Tbl4_Macro503: 

DW 4 

DW 00 ;end 

Tbl4_Macro504: 

DW 4 

DW 00 ;end 

Tbl4_Macro505: 

DW 4 

DW 00 ;end 

Tbl4_Macro506: 

DW 4 

DW 00 ; end 

Tbl4_M«cro507: 

DW 4 

DW 00 ; end 

Tbl4_Macro508: 

DW 4 

DW 00 ; end 

Tbl4_Macro509: 

DW 4 

DW 00 ;end 

Tbl4_Macro510: 

DW 4 

DW 00 ; end 

Tbl4_Macro511: 

DW 4 

DW 00 


; end 






; 

;.*.*. 

;******.*.. 

;*.••••••••....... 

.... 

f...*.*. 

;;;;;;; SAYSENT pointer tables (128 max per table - 255 tables max) 

Spch_grpl: 

DW Tbll_say000 

DW 

Tbll_say001,Tbll_sayC02.Tbll_say003.Tbll_say004,Tbll_say005 
DW 

Tbll_say00i.Tbll_say007,Tbll_say008.Tbll_say009.Tbll_say010 
DW 

Tbll_say011.Tbll_say012,Tbll_say013.Tbll_say014.Tbll_say015 
DW 

Tbll_say016.Tbll_sayO17.Tbll_say018.Tbll_sayOIf.Tbll_say‘ 20 
DW 

Tbll_say021.Tbll_say022.Tbll_say023.Tbll_say024.Tbll_sayC25 
DW 

Tbll_say026,Tb1l_sayC27,Tbl1_say02 6,Tbll_say0 29.Tbll_say0 3 0 
DW 

Tbll_say031.Tbll_say032.Tbll_say033,Tbll_say034.Tbll_say035 
DW 

Tbll_say03 6,Tbll_say0 37,Tbll_say0 3 8,Tbll_say03 9.Tbll_say04 0 
DW 

Tbll_say041,Tbl1_say042.Tbl-_sayC 4 3,Tbll_say044.Tbll_say045 
DW 

Tbll_say046,Tbll_say047.Tbll_say048.Tbll_say049,Tbll_say050 
DW 

Tbll_say051,Tt l_say052.Tbll_say053,Tbll_say054,Tbll_say055 
DW 

Tbll_say056,Tbll_say -7,Tbll_say058,Tbll_say059,Tbll_say060 
DW 

Tbll_say061,Tbll_sa. O02,Tbll_sayO63,' T _say064 , Tbll_say065 
DW 

Tbll_say06 6,Tb11_say0 67,Tbll_say0 68,Tbll_say0 6 9,Tbll_say07 0 
DW 

Tbll_say071,Tbll_say072,Tbll_say073,Tbll_say074,Tbll_say075 
DW 

Tbll_say076,Tbll_say077,Tbll_say078,Tbll_say079,Tbll_say080 
DW 

Tbll_say081,Tbll_say082,Tbll_say063,Tbll_say084.Tbll_say085 
DW 

Tbll_say086,Tbll_say087,Tbll_say088.Tbll_say089,Tbll_say09Q 
DW 

Tbll_say0 91,Tbll_say09 2.Tbl1_say09 3,Tbll_say0 9 4,Tbll_say0 9 5 

DW Tbll_say096,Tbll_say097,Tbll_say098,Tbll_say099 

DW 

Tbll saylOO,Tbll_sayl01,Tbll_oayl02,Tbll_sayl03,Tbll_sayl04 

DW Tbll_sayl05. Tbll_sayl06, Tbll_sayl07 , Tbll_sayl08 , Tbll_sayl09 
DW Tbll_say i 10, Tbll_say 111, Tbll_sayl 12 . Tbll_say 113 , Tbl l_say 114 
DW Tbll_8ayl15,Tbll_sayll6,Tbll_sayll7,Tbll_sayll8,Tbll_sayll9 
DW Tbll_sayl20.Tbll_sayl21,Tbll_sayii2.Tbll_sayl2J,Tbll_sayl24 
DW Tbll_sayl25,Tbl1_sayl26,Tbll_sayl27 


A-198 








Spch_grp2! 

DW Tbl2_sayl28 

DW Tbl2_sayl29,Tbl2_«ayl30.Tbl2_sayl31.Tbl2_sayl32,Tbl2_sayl33 
DW Tbl2_aayl34,Tbl2_sayl35,Tbl2_sayl36,Tbl2_sayl37,Tbl2_sayl38 
DW Tbl2_sayl39.Tbl2_»a/140,Tbl2_sayl41.Tbl2_sayl42.Tbl2_sayl43 
DW Tbl2_sayl44,Tbl2_sayl45.Tbl2_sayl46.Tbl2_sayl47.Tbl2_sayl43 
EM Tbl2_sayl49.Tbl2_sayl50,Tbl2_sayl51,Tbl2_sayl52,Tbl2_sayl53 
DW Tbl2_sayl54.Tbl2_sayl55,Tbl2_sayl56.Tbl2_sayl57.Tbl2_sayl58 
DW Tbl2_sayl59,Tbl2_sayl60,Tbl2_sayl61,Tbl2_say’ e 2,Tbl2_sayl63 
DW Tbl2_sayl64.Tbl2_sayl65,Tbl2_sayl66,Tbl2_s«_ .b?,Tbl2_sayl68 
DW Tbl2_sayl69,Tbl2_sayl70,Tbl2_say;71,Tbl2_sayl72,Tbl2_sayl73 
DW Tbl2_aayl74,Tbl2_sayl75,Tbl2_sayl76,Tbl2_aayl77,Tbl2_sayl78 
EM Tbl2_aayl79 . Tbl2_sayl80, Tbl2_sayl81, Tbl2_sayl82, Tbl2_sayl83 
DW Tbl2_sayl84.Tbl2_Bayl85,Tbl2_sayl86,Tbl2_sayl87.Tbl2_sayl88 
DW Tbl2_sayl89,Tbl2_sayl90,Tbl2_sayl91.Tbl2_sayl92,Tbl2_sayl93 
DW Tbl2_sayl94,Tbl2_sayl95,Tbl2_sayl96,Tbl2_sayl97,Tbl2_sayl98 
DW Tbl2_sayl99,Tbl2_say200.Tbl2_say201,Tbl2_say202,Tbl2_say203 
DW Tbl2_say204,Tbl2_say205,Tbl2_say206,Tbl2_say207,Tbl2_say208 
DW Tbl2_say209,Tbl2_say210.Tbl2_say211,Tbl2_say212.Tbl2_say213 
DW Tbl2_say214 , Tbl2_say215. Tbl2_say216, Tbl2_say21-; . Tbl2_say218 
DW Tbl2_say219,Tbl2_say220,Tbl2_say221,Tbl2_say222.Tbl2_say223 
DW Tbl2_say224.Tbl2_say225,Tbl2_say226,Tbl2_say227,Tbl2_say228 
DW Tbl2_say229,Tbl2_say230,Tbl2_say231.Tbl2_say232,Tbl2_say23 3 
DW Tbl2_say234,Tbl2_say235,Tbl2_say236,Tbl2_say237,Tbl2_say238 
DW Tbl2_say239.Tbl2_say24C.Tbl2_say241,Tbl2_say242,Tbl2_soy243 
DW Tbl2_say244 , Tbl2_s?.y245. Tbl2_say246, Tbl2_sav247 , Tbl2_say24 8 
DW Tbl2_say249,Tbl2_say250,Tbl2_say251.Tbl2_say252,Tbl2_soy253 
DW Tbl2_say254,Tbl2_»ay255 


Spch_grp3: 

DW Tbl3_say256 

DW Tbl3_say257,Tbl3_Bay258,Tbl3_say259,Tbl3_say260,Tbi3_say261 
DW Tbl3_say262,Tbl3_say263.Tbl3_say264.Tbl3_say265.Tbl3_say266 
DW Tbl3_say267,Tbl3_say268.Tbl3_say269,Tbl3_say270,Tbl3_say271 
D». Tbl3_say272, Tbl3_say273. Tbl3_say274 , Tbl3_say275. Tbl 3_say276 
DW Tbl3_8ay277,Tbl3_say278,Tbl3_say279,Tbl?_say280,Tbli ay281 
DW Tbl3_say282,Tbl3_say283.Tbl3_say284,Tbl3_say285,Tbl3. ay2£6 
DW Tbl3 say287.Tbl3_say288,Tbl3_say289,Tbl3_say290,Tbl3_say291 
DW Tbl3_say292,Tbl3_say293.Tbl3_say294,Tbl3_say295.Tbl3_say296 
DW Tbl3_say297,Tbl3_say298,Tbl3_say299,Ttl3_say300.Tbl3_say301 
DW Tbl3_say302 . Tbl3_say303 , Tbl3_say304, Tbl3_say30 , i, Tbl3_aay306 
DW Tbl3_say307,Tbl3_say308,Tbl3_say309,Tbl3_8ay310,rbl3_Bay3U 
DW Tbl3_say312,Tbl3_say313,Tbl3_aay314,Tbl3_8ay315,Tbl3_say316 
DW Tbl3_say317,Tbl3_aay318,Tbl3_say319,Tbl3_say320.Tbl3_say321 
DW Tbl3_say322,Tbl3_say323,Tbl3_say324,Tbl3_say325,T.13_say326 
DW Tbl3_say327,Tbl3_say328,Tbl? Bay329,Tbl3_say330.Tbl3_Ba 331 
DW Tbl3_aay332,Tbl3_say333.Tbl ,ay334.Tbl3_say335,Tbl3_say336 
DW Tbl3_say337,Tbl3_say338,Tbl say339,Tbl3_say340,Tbl3_say341 
DW Tbl3 Bay342,Tbl3_«ay343,Tbl _aay344.Tbl3_say345,Tbl3_say346 
DW Tbl3_say347,Tbl3_say348.Tbl3_say349.Tbl3_say350,Tbl3_say351 
DW Tbl3_say3 52,Tbl3_say3 53,Tbl3_say3 54,Tbl3_say3 5 5,Tbl3_say3 5 6 
DW Tbl3_say357,Tbl3_8ay358.Tbl3_say359,Tbl3_say360,Tbl3_say361 
DW Tbl3_say3 62,Tbl3_say3 63.Tbl3_say3 64,Tbl3_say3 65.Tbl3_say3 1 6 
DW Tbl3_say367,Tbl3_Bay368.Tbl3_say369.Tbl3_say370,Tbl3_Bay3-71 

DW Tbl3 say372,Tbl3_say373.Tbl3_say374,Tbl3_say375.Tbl3_say376 
DW Tbl3_say377,Tbl3_say378.Tbl3_say379.Tbl3_say380.Tbl3_say381 


A-199 



DW Tbl3_sayi32,Tbl3_say383 

; 

; 

Spch_grp4: 

DW Tbl4_say384 

DW Tbl4_say385.Tbl4_say386,Tbl4_say387,Tbl4_say388,Tbl4_say389 
DW Tbl4_aay390,Tbl4_say391,Tbl4_Bay392,Tbl4_say393,Tbl4_Bay394 
DW Tbl4_say395,Tbl4_aay396.Tbl4_say397,Tbl4_say398.Tbl4_say399 
DW Tbl4_say400,Tbl4_Bay401,Tbl4_say402,Tbl4_say403,Tbl4_say404 
DW Tbl4_say405,Tbl 4_Bay406,Tbl4_say407,Tbl4_aay408.Tbl4_aay409 
DW Tbl4_say410,Tbl4_say411,Tbl4_say412,Tbl4_say413,Tbl4_say414 
DW Tbl4_say415,Tbl4_8ay416,Tbl4_say417,Tbl4_say418.Tbl4_aay419 
DW Tbl 4_say "'O . Tbl4_say421. Tbl4_say422 . Tbl4_say423. Tbl4_say424 
D. Tbl4_say-.25, Tbl4_say426, Tbl 4_say427, Tbl4_say428, Tbl4_aay429 

D4 Tbl4_say430, Tbl4_say431,Tbl4_say432,Tbl4_say433 , Tbl4_say434 
DW Tbl4_say435, Tbl4_say436, Tbl4_aay437 , ”bl4_say4 38, Tbl4_say439 
DW Tbl4_say440,Tbl4_aay441,Tbl4_say442,TDl4_say443.Tbl4_say444 
DW Tbl4_say445,Tbl4_say446.Tbl4_say447,Tbl4_say448.Tbl4_say449 
DW Tbl4_Bay450.Tbl4_aay4Sl.Tbl _eay452,Tbl4_say4S3.Tbl4_say454 
DW Tbl4_say455,Tbl4_say456,Tbl4_say457.Tbl4_say458,Tbl4_say459 
DW Tbl4_say4 60,Tbl4_say461,Tbl4_say462.Tbl4_say463,Tbl4_say464 
DW Tbl4_say465,Tbl4_say466,Tbl4_say467.Tbl4_say468,Tbl4_say469 
DW Tbl4_aay470,Tbl4_say471.Tbl4_say472,Tbl4_say473,Tol4_say474 
DW Tbl4_soy475.Tbl4_say476.Tbl4_say477.Tbl4_say478.Tbl4_say479 
DW Tbl4_say48C.Tbl4_say481,Tbl4_say482.Tbl4_say483.Tbl4_say484 
DW Tbl4_say485,Tbl4_say486.Tbl4_say487,Tbl4_say488,Tbl4_say489 
DW Tbl4_say490,Tbl4_say491.Tbl4_-ay492,Tbl4_say493,Tbl4_say494 
DW Tbl4_sa/495.Tbl4_say496,Tbl4_say497,Tbl4_say498,Tbl4_say499 
DW Tbl4_s»y500.Tbl4_say501,Tbl4_say502,Tbl4_say503,7bl4_say504 
DW Tbi4_say505,Tbl4_say506,Tbl4_say507.Tbl4_say508,"bl4_say509 
DV Tbl4_say510,Tbl4_say511 


; ALL SPEECH SAYSENT START HERE ;;;;;;;;; 
;j Saysent groups for Tbl 1 


The first line of each group is the speech speed command. 
This is a number from 40 - 55 whrre 46 is stand d speed 


; The next line is PITCH control which works as follows: 
; Actual numeric value for TI pitch control 

; bit 7 set ■ subtract value from current course value 
; clr « add value to current course value 

; bit 6 set = select music pitch table 
; clr = select normal speech pitch table 

I bit 0-5 value to change course value (no change = 0) 










; 

; 

; 

« 

; 


8Fh 

81h 

00 

01 

2£h 


•'hi voice (8£ is very squeeeeeke) (SF= 143) 

;one step higher than normal use range 81-8F (129-143) 
;normal voice 

;one step lower than normal 

;lo voice ( very low) use range 01-’’F (01-47) 


; A math routine in 'say_0’ converts the value £or ♦ or - 
; i£ <80 then subtracts from 80 to get the minus version of 00 
; ie. if number is 70 then TI gets 10 (which is -10) 

I If number is 80 or > 80 then get sent literal as positive. 

NOTEi MAX POSITIVE IS 8B 

MAX NEGATIVE is 2F ( 80h - 2Fh or 51h> 

8Bh is hi voice (8f is very squeeeeeke) 

2Fh lo voice ( very low) 


j When entering changes, ’Voice 1 holds the current pitch for Furby 
; and it is modified by adding or subtracting a pitch change ::: 

. ex: Voice*8 increases the pitch from the current voice by 8 

; ex: Voice-10 decreases the pitch from the current voice by 10 


; The next group of entries are the speech words. 
I Th® last line is the terminator of ’FF’ 

1 (BOTTOM) 

J 

; 1 is very fast 

; 46 is average 

; 255 is very slow 

! 

; DB 46 (speed of speech) 

; DB 123 (do sound 1231 

; DB 43 (do sound 43) 

; DB FFH 

I PITCH PROGRAMMING RANGE: 

l Voice»8 (highest) 

; Voice-20 (lowest) 

i: 

Tbll_say0i J: 


DB 

46 

DB 

Voice 

DB 

163 

DB 

FFH 


;GEORGE 07/03/98 
Tbll_say001: 


DB 

46 

; s] eech speed 

DB 

Voice* 8 


DB 

149,162 

. -.02,164,149 

DB 

FF A 

; end 


;dON START SEQ1 AGE1 
; DONE 1FRONT SEQ1 


Tbll_say002: 


A-201 






DB 

52 

;speech speed 

DB 

Voice»8 ;system pitch setting 

DB 

117,59 

;DONE 1FRONT SEQ2 agel 

DB 

FFH 

; end 

Tbll_say003: 

DB 

46 

;speech speed 

DB 

Voice- 

4 ;system pitch setting 

DB 

118 

,-lfront seq3 - seq4-partl-SEQ7PART2 

DB 

FFH 

; end 

Tbll_say004: 

DB 

46 

;speech speed 

DB 

Voice 

.-system pitch setting 

DB 

62.22, 

85 jlfront seq3 part2 

DB 

FFH 

; end 

Tbll_say005: 

DB 

50 

;speech speed 

DB 

Voice*8 ;system pitch setting 

DB 

58,39 

;1front seq4 part 2 

DB 

FFH 

; end 

Tbll_say006: 

DB 

46 

;speech speed 

DB 

Voice 

.-pitch control 

DB 

162,16 

2,99,117 ;seq5 agel front part of 

DB 

FFH 

; end 

Tbll_say007: 

DB 

55 

;speech speed 

DB 

Voice- 

8 ;system pitch setting 

DB 

156 

;seq6 agel front bach part 

DB 

FFH 

; erd 

Tbll_sayOOS: 

DB 

46 

;speech speed 

DB 

Voice 

.-pitch control 

DB 

162,162 

,59,10,39 ;SEQ7 FROJ4T AGE1 ADD SAY 003 

DB 

FFH 

; end 

Tbll_say009: 

DB 

46 

r speech speed 

DB 

Voi _e 

system pitch setting 

DB 

99 99,145 iSEQ8 FRONT AoEl 

DB 

FFH 

; end 

Tbll_say010: 

DB 

46 

;speech speed 

DB 

Voice 

.-system pitch setting 

DB 

98 

;seq9 FRONT AGE1 

DB 

FFH 

; end 

Tbll_say011: 

DB 

30 

,-speech sp>eed 

DB 

Voice*8 

;system pitch setting 

DB 

96,165,165,165,129,149 ;seql0 FRONT A3E1 ADD 

DB 

FFH ;end 


Tbll_say012: 


A-202 




DB 

50 

;speech speed 

DB 

Voice 

;system pitch •-•-ing 

DB 

136,165,162,45 . eqll FRONT AGE1 ADD SAY20 

DB 

FFH 

; end 

Tbll_say013: 

DB 

58 

;speech speed 

DB 

Voice 

;system pitc' setting 

DB 

1:8.136, 

117 ;seql2 FRONT AGE1 ADD 

SAY20 ON FRONTPART 


DB 

F*\ 

;end 

Tbll_say014: 

DB 

60 

;*F 

DB 

Voice*8 

t itch :et ing 

DB 

145,162 

;seql3 FRONI AGE1 

ADD SAY22 

DB 

FFH 

; end 

Tbll_s«y015: 

DB 

4t 

speech speed 

DB 

Voice*8 

;system pitch setting 

DB 

156 

;seql4 FRONT AGE1 

DB 

FFH 

; end 

Tbll_say016: 

DB 

46 

;speech speed 

DB 

Voice*7 

; system pitch setting 

DB 

119,58 

;seql5 FF T AGE! 

DB 

FFH 

; end 

Tbll_say017: 



DB 

46 

;speech speed 

DB 

Voice 

:system pitch setting 

DB 

37 

;seql6 FRONT AGE1 BETWEEN 2(FAY20)ADDSAY37 

DB 

FFH 

; end 

Tbll_say018: 

DB 

46 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

123 

;SEQ16 FRONT AGE1 

DB 

FFH 

; end 

Tbll_say019: 

DB 

46 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

118 

;SEQ1 FRONT AGE2 REPEAT 22 

DB 

FFH 

;end 

Tbll_say020: 

DB 

46 

;speech speed 

DB 

Voice*7 

.■system pitch setting 

DB 

77,35 

;SEQ2 FRONT ADD 20 TO FRONT 

DB 

FFH 

;end 

Tbll_say021: 

DB 

46 

;speech speed 

DB 

Voice 

.•system pitch setting 

DB 

39,39 

; SEQ3AGE2 FRONT AID TEJ9AGE1 

DB 

FFH 

;end 



Tbll_say022: 

DB 

56 

;speech speed 

DB 

Voice*7 

;system pitch setting 

DB 

156 

;SEQ4 AGE2 FRONT 

DB 

FFH 

,-end 

Tbll_say023t 

DB 

46 

; speech speed 

DB 

Voice*7 

.-system pitch setting 

DB 

8,162.22 

.-SEQ4 AGE2 FRONT 

DB 

FFH 

; end 

Tbll_say024: 

DB 

46 

;speech speed 

DB 

Voice*7 

;system pitch setting 

DB 

117,81,27 ,-SEQS AGE2 FRONT 

DB 

FFH 

,- end 

Tbll_say025: 

DB 

46 

;speech speed 

DB 

Voic 

.-system pitch setting 

DB 

95.35,4c 

;. 164.77 ; SEQ6 AGE2 FRONT 

DB 

FFH 

; end 

Tbll_say026: 

DB 

46 

;speech speed 

DB 

Vcice*6 

;system pitch setting 

DB 

99 

;SEQ 7 AGE2 FRONT PART 1 

DB 

FFH 

; end 

Tbll_say027: 

DB 

46 

;speech speed 

DB 

Voice-*" 

.-system pitch setting 

DB 

60,39.117 ;SEQ 7 AGE2 FRONT PART 2 

DB 

FFH 

; end 

Tbll_say02 r : 

DB 

46 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

145 

;SEQ 8 AGE2 FRONT say45(2)^2: 

DB 

FFH 

; end 

Tbll_say0?9: 

DB 

46 

;speech speed 

DB 

Vcice*5 

; system pitch setting 

DB 

149.162.162,164.149 .-FRONT SEQ9 AGF2 

DB 

F. H 

,-end 

Tbll_say030: 

DB 

60 

.-speech speed 

DB 

Voice*7 

;system pitch setting 

DB 

96,163. 

163,129 ;SEQ10 FRONT AGE 2 A 

DB 

FFH 

,-end 

Tbll_sayv31: 

DB 

60 

;speech speed 

DB 

Voice*8 

,-system pitch setting 

DB 

39,63 

;SEQ11 FRONT AGE 2 

DB 

FFH 

; end 



Tbll_say032: 
DB 
DB 
DB 
DB 


46 ;speech speej 

Voice*7 ;system pitch setting 

128,117 ;SE012 FRONT AGE 2 ADD 20 

FFH ;end 


Tbll_say033: 

DB 56 rspeech speed 

DB Voice*7 ;system j ch setting 

DB 99,55,162.28 .-SEQ14 FRONT AGE2 

DB FFH ;end 

i 

Tbll_say034: 

DB 46 ;speech spec 1 

DB Voice*6 ;system pitch setting 

DB 136,34 ; SEQ15 fRONT AC,_2 ADD 20 

DB FFH ;end 


Tbll_say035: 
DB 
DB 
DB 

BEGGINING 

DB 

Tbll_say036: 
DP 
DB 
DB 
DB 

Tbll_say037: 

DB 

DB 

DB 

DB 

Tbil_say038: 

DB 

DB 

DB 

DB 

Tbll_say039: 

DB 

DB 

DB 

DB 

) 


56 ;speech speed 

Vcice*6 ;system pitch 

35.162,48,162.93,133 

setting 

;SEQ16 FRONT AGE2 ADD: 

FFH ;end 



50 

;speech speed 


Voice*3 

;system pitch 

setting 

162,1 


;SEQl FRONT AGE3 

FFH 

;end 



46 

speech speed 


Voice 

.•system p ; tch setting 

81,77 52 

;SEC2 FRONT 

AGE3 

FFH 

; end 


46 

;speech speed 


Voice*8 

;system pitch 

setting 

1,1 

; SEQ3 

FRONT AGE3 ADD29 

FFH 

; end 


50 

;speech speed 


Voice*6 

.•system pitch 

setting 

162,14,27 ;SEQ4 FRONT A3E4 ADD41 

FFH 

,- end 



ERROR 

Tbll_say040: 


DB 

46 

;speech speed 

DB 

Voice 

.■system pitch setting 

DB 

DB 

FFH 

; end 


; 


A-205 




Tbll_say040: 


DB 

46 

,-speech speed 

DB 

Voice 

,-system pitch setting 

DB 

99.35,47,58 ;SEQ6 FRONT AGE3 

DB 

FFH 

;end 

Tbll_say041: 



DB 

46 

;speech speed 

C 

Voice 

;system pitch setting 

DB 

99,60,77,23 ;SEQ7 FRONT AGE3 ADD 22 

DB 

FFH 

; end 

Tbll_say 42: 



DB 

46 

;speech speed 

DB 

Voice 

S«y cem pitch settinc 

DB 

99,145 

;BEQ8 FRONT AGE3 ADD 22 

DB 

FFH 

; end 

ERROR 



Tbll_say044 : 



DB 

46 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

4 GO 

TO 22 

DB 

FFH 

; end 


Tbli_say043: 

DB 

30 

;speech speed 



DB 

Voice*8 

.•system pitch setting 



DB 

96,165.165,165.129.149 ;seql0 FRONT AGE3 

ADD 

SAY20 

DB 

FFH 

; end 


"bll_say044: 





DB 


50 

;speech speed 


DB 


Voice*4 

;system pitch setting 


DB 


145 

;SEQ11 FRONT AGE3 


DB 


FFH 

; end 


Tbll_say045: 





DB 


46 

;speech speed 


DB 


Voice 

;system pitch setting 


DB 


119,77 

:SEQ12 FRONT AGE3 (HEEY,TICKLE KEI 

ALD2C 

DB 


FFH 

; end 


Tbll_say046: 





DB 


46 

;speech speed 


DB 


Voice 

;>.,stem pitch setting 


DB 


128 

;SE013 £RONT AGE3 (NANNY,NANNY1 

add:: 

DB 


FFH 

; end 


Tbll_say047; 





DB 


46 

;speech speed 


DB 


Voice 

;syst m pitch setting 


DB 


136,117 

;SEC 3 fRONT AGE3 (RASBERRY* hE HE HE ) ADD2C 

DB 


FFH 

; end 


Tbll_say048: 





DB 


46 

;speech speed 



A-206 




DB Voice ;system pitch setting 

DB 35,162,47 .-SEQ16 kAH LOVE FRONT AGE3 ADD 20 

DB FFH i end 

Tbll_say049: 

DB 56 ;speech speed 

DB Voice*6 ;system pitch setting 

DB 81,133 ;SEQ16 (U-NYE QUICK KISS) FRONT AGE1 ADD20 

DB FFH } end 


Tbll_say050: 

DB 

DB 

DB 

DB 

46 

Voice 

77 

FFH 

;speech speed 

;system pitch setting 

SEQ2 (TICKLE) FRONT AGE4 
;end 

Tbll_say051: 

DB 

DB 

DB 

DB 

46 

Voice*6 

1 

FFH 

.■speech speed 

; system pitch setting 
;SEQ2 (AGAIN) FRONT AGE4 
; end 

Tbll_say052: 

DB 

DB 

DB 

DB 

46 

Voice 

93 

FFH 

;speech speed 
.•system pitch setting 
;SEQ3 (YOU) FRONT AGE4 
; end 

Tbll_say053: 

DB 

DB 

DB 

DB 

46 

Voice 

52 

FFH 

;speech speed 
;system pitch setting 
;SfcQ3 (HE) FRONT AGE4 
;end 

Tbll_say054: 

DB 

DB 

DB 

DB 

46 

Voice 

47 

FFH 

;speech speed 
.•system pitch setting 
;SEQ4 (LOVE! FRONT AGE4 
;end 

Tbll_say055: 
DB 

DB 

DB 

DB 

46 

Voice*8 
117 

FFH 

.•speech speed 

.•system pitch setting 
;SEQ5 (HE HE HI, FRONT AGE4 
i end 

; 

Tbll_say056: 
DB 

DB 

DB 

DB 

46 

Voice 

8,27 

FFH 

;speech speed 
; system pitch etting 

jSEQS (BIG FUN) FRONT AGE4 ADD26 
;end 

; 

Tbll_say057: 

DB 

DB 

DB 

DB 

46 

Voice 

60 

FFH 

;c . eech speed 
;system pitch setting 
;SEQ6 (NO) FRONT AGE4 
; end 

Tbll_say058: 

DB 

46 

.•speech speed 


A-207 




DB 

Voice 

;system pitch 

setting 

DB 

68 

;SEQ8 (PLEASE) 

FRONT 

DB 

FFH 

;end 



Tbll_say059: 

DB 46 ;speech speed 

DB Voice-*8 ;system pitch setting 

DB 119 ;SE39 (HEEYI FRONT AGE4 ADD71 

DB FFH ; enc 

Tbll_say060: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 66 ;SEQ14 (PARTY) FRONT AOE4 

DB FFH ;end 

Tbll_say061: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 108 ;SEQ15 (WA WA WA ) fRONT AGE4 ADD 22 

DB FFH ;end 

;END GEORGE 07/03/98 


GEORGE 07/04/98 
START SAY FORTUNE 


Tbll_say062: 




DB 

46 

speech speed 


DB 

Voice-6 

system pitch 

setting 

DB 

3 

FORTUNE TELL 

(ASK) 

DB FFH 

; end 



Tbll_say063: 




DB 

46 

speech speed 


DB 

Voice 

system pitch 

setting 

DB 

92 

FORTUNE TELL 

(YES) 

DB FFH 

; end 



Tbll_say0t>4: 




DB 

46 

speech spevd 


DB 

Voice 

system pitch 

setting 

DB 

8 

FORTUNE TELL 

(BIG) 

DB FFH 

; end 



Tbll_say065: 




DB 

46 

spet u speed 


DB 

Vcice»6 

•system pitch setting 

DB 

84,8 

•FORTUNE TELL 

(VERY,BIG) 

DB FFH 

;end 



1 

Tbll_say066: 




DB 

100 

speech speed 


DB 

Voice 

system pitch 

setting 

DB 

162,70 

.•FORTUNE TELL 

(SEE YES) 

DB FFH 

; end 



Tbll_aay067: 




DB 

. 0 

;speech speed 


DB 

Voice-4 

; system pitch setting 

DB 

157,162,157 

.-Fortune tell 

(SLOW WHINE) 

DB FFH 

; end 




A-208 








Tbll_say068: 


DB 


46 

speech speed 

DB 


Voice 

syi tern pitch letting 

DB 


64 

FORTUNE TELL (02WHA) 

DB 

FFH 

;end 


Tbll_say069 




DB 


46 

speech speed 

DB 


Voice*5 

system pitch setting 

DB 


60 

FORTUNE TELL (NO) 

DB 


FFH ;end 


Tbll_say070 




DB 


46 

speech speed 

DB 


Voice»7 

system pitch setting 

DB 


90 

FORTUNE (WORRY) 

DB 

FFH 

j end 


Tbll_say071 




DB 


46 

speecn speed 

DB 


Voice*" 

system pitch setting 

DB 


73 

FORTUNE (SOUND) 

Dd 

FFH 

; end 


Tbll_say072 




DB 


46 

speech speed 

DB 


Voice 

system pitch setting 

DB 


28 

FORTUNE (GOOD) 

DB 

FFH 

; end 


Tbll_say073 




DB 


4c 

speech speed 

DB 


Voice 

system pitch setting 

DB 


84 

FORTIT IE (VERY) 

DB 

FFH 

.-end 


Tbll_say074 




DB 


50 

speech speed 

DB 


Voice-8 

system pitch setting 

DB 


159 

FORTUNE (WHOOPEE) 

DB 

FFH 

;end 


Tbll_say075 




DB 


46 

speech speed 

DB 


Voice-5 

system pitch setting 

DB 


28 

FORTUNE (GOOD) 

DB 

FFH 

;end 


Tbll_8ay076 




DB 


56 

speech speed 

DB 


Voice*7 

■system pitch setting 

DB 


136 

•FORTUNE (RASPBERRY) 

DB 

FFH 

; end 


J 

Tbll_say077 




DB 


50 

speech sper-d 

DB 


Voice 

■system pitch setting 

DB 


129 

•FORTUNE (oH oH) 

DB 

FFH 

; end 



A-209 





Tbll_say078: 


DB 

50 

{speech speed 

DB 

Voice-7 

{system pitch setting 

DB 

49 

.-FORTUNE (MAY BEE) 

DB 

FFH ;end 


;END SAY FORTUNE 


;END GEORGE 

07/04/98 


,-START HANGOUT 


,-GEORGE 07/04/98 


Tbll_say079 



DB 

56 

{speech speed 

TB 

Voice-8 

;system pitch setting 

DB 

DUM) AGE1 

110 

,-SEQl HANGING (DE DE DE ,DUK DUM DUM 

DB 

FFH end 


Tbll_say080 



DB 

60 

;speech speed 

DB 

Voice-8 

{system pitch setting 

DB 

109 

SEQ1 HANGING! DUM DUM DUM) AGE1; ADD 83 


DB FFH ; end 


Tbll_say081: 

DB 56 .-speech speed 

DB Voice-8 ;system pitch setting 

DB 116 ;SEQ2 HANGING (BEEDO) 

DB FFH ;end 

Tbll_say082: 


DB 

46 

;speech speed 

DB 

Voice-7 

;system pitch setting 

DB 

113 

:SEC3 HANGING (YA DA DA 


DB FFH ;end 


Tbll_say083: 

DB 53 jspeech speed 

DB Voice-5 ;system pitch setting 

DB 162.114.162,114 sSEQ3 HANGING (OMPAH bRUMM) 

DB FFH ; end 

Tbll_say084: 

DB 46 .-speech speed 

DB Voice-8 ;system pitch setting 

DB 115 :SEQ3 HANGING (YA DA DA OMPAH bRUMM BABABUM) 

DB FFH {end 

Tbll_soy085: 

DB 60 ;speech speed 

DB Voice-5 .-system pitch setting 

DB 126,163 ;SEQ4 HANGING (LA LA) 

DB FFH ;end 

Tbll_say086: 

DB 56 ,-speech speed 

Db Voice-5 system pitch setting 

Db 127 ;SEQ4 HANGING (LA LAI 

DB FFH ;end 


A-210 





Tbll_say087: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 101 ;SEQ5 HANGING (HUMMMMMM) 

DB FFH ; end 


; 

Tbll_say088. 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 11 ;SEQ5 HANGING (BO DAH WA LOI 

DB FFH ;end 


Tbll_say089: 

DB 46 

DB Voice*! 

DB 143,163 

DB FFH ;end 


.■speech speed 
;system pitch setting 
:SE6 HANGING (SNORE) 


Tbll_say090: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 148 ;SEQ6 HANGING (SHOUT) 

DB FFH ;end 


Tbll_say091: 

DB 46 ;speech speed 

DB Voice ;sys em pitch setting 

DB 63,^5 ;SEQ6 HANGING IOK.KAK) 

DB FFH ; end 


Tbll_say092: 




DB 


46 

;speech speed 

DB 

Voice ;system pitch setting 

DB 


82 

;SEQ6 HANGING (U-TYE) 

DB 

FFH 

; end 


lbll_say093 



;speech spt ed 

DB 


60 

DB 


Voice*8 

.•system [. c :'t setting 

DB 


144 

; SEC’ HANGING lSOFTER) 

DB 

FFH 

; end 


Tbll_say094 



;speech speed 

DB 


46 

DB 


Vcice-4 

.•system pitch setting 

DB 


144 

;SEQ7 HANGING (SOFTER) 

DB 

FFH 

;end 



Tbll_say095: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 124,162 ;SEQ8 hANGING (kITTY KITTY) 

DB FFH !end 


Tbll_say096: 
DB 
DB 
DB 


DB 


56 

Voice ;system pitch setting 
112 ;3EQ9 HANGING (DO BE DOBE DO) 

;end 


FFH 



Tbll_say097 

DB 60 ;speech speed 

DB Voice»7 ;system pitch setting 

DB 161,164.164,161 ;SEQ10 HANGING (YAWN) 

DB FFH ;end 

Tbll_say098: 

DB 100 ;speech speed 

DB Voice*6 ;system pitch setting 

DB 140 ;SEQ11 AND SEQ12 HANGING (SIGH) 

DB FFH i end 

Tbll_say099: 

DB 46 .-speech speed 

DB Voice»8 {system pitch sorting 

DB 100 ; SEQ13 SEQ14 HANGING (HAA) 

DB FFH ; end 

Tbll_sayl00: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 119 ; SEC 14 HANGING (HEEY) 

DB FFH ;end 

Tbll_sayl01: 

DB 46 ;speech speed 

DB Voice {system pitch setting 

DB 132,165,132 ,-SEQ16 HANGING (PHONE) ADD20 

DB FFH ;end 

Tbll_sayli 1: 

DB 46 ,• speech speed 

DB Voice i system, pitch setting 

DB 165,165,165,165 .-SEQ16 HANGING (PAUSE) ADD20 

DB FFH ;end 

Tbll_sayl03: 

DB 46 ,* speech speed 

DB Voice*5 ,-system pitch setting 

DB 83 {SEQ6 HANGING (UP) 

DB FFH {end 

Tbll_sayl04 : 

DB 46 {speech speed 

DB Voice ;system pitch setting 

DB 52 {SEQ6 HANGING AGE3 (ME) 

DB FFH ,- end 

Tbll_sayl05: 

DB 46 {speech speed 

DB Voice .• system pitch setting 

DB 63 {SEQ6 HANGING AGE3 (OK) 

DB FFH ,- end 

Tbll_sayl06: 

DB 46 .-speech speed 

DB Voice ;system pitch setting 

DB 13 ;SEQ5 HANGING AGE3 AND 4 

DB FFH {end 


A-212 



;END HANGOUT 


Tbll_8ayl07: 


DB 

46 

;speech speed 

DB 

Voice 

.•system pitch setting 

DB 

165,165 

.•Fortune delay 


DB FFH ; end 


;END GEORGE 07/04/98 
;START FEED 
;GEORGE 07/05/98 

__START fEED 

( 

; spch_grp2 was here 
;; Saysent groups for Tbl 2 


;STARTS AT 128 
Tbll_sayl08: 

DB 100 ;speech speed 

DB Voice ;system pitch setting 

DB 166 ; SEQ1 FEED AGE1 IUUKMM) 

DB FFH ;end 


NOT USED 
Tbl2_sayl29: 

DB 

DB 

; DB 

DB 


4 6 ;speech speed 

Voice»8 ;system pitch setting 
;SEQ1 FEED AGE1 (AY-TAY) 
FFH ;end 


Tbll_sayl09: 

DB 100 ;speech speed 

DB Voice ;system pitch setting 

DB 167.167 ;SEQ1 FEED AGE1 (AAAAH) 

DB FFH ; end 


Tbll_snyll0: 

DB 56 

DB Voice*3 

DB 39 ;SEQ2 

DB FFH ;end 

Tbll_saylll: 

DB 56 

DB Voice*7 

DB 55 

B FFH ;end 

Tbll_sayll2: 

DB 50 

DB Voice ;syst 

DB 25 

DB FFH •end 


;speech speed 

.•system pitch setting 
FEED AGE1 IKOH-KOH) 

t 


;speech speed 

.•system pitch setting 
;SEQ2 FEED AGE1 (MEE HEE) 


;speech speed 
m pitch setting 
;SEQ2 FEED AGE1 (E-DAY) 





Tbll_sayll3: 

DB 58 ;speech speed 

DB Voice*7 ;system pitch setting 

DB 23 ;SEQ2 FEED AGE1 (DO MOH) 

DB FFH ;end 

Tbll_sayll4: 

DB 58 ;speech speed 


DB 

Voice 

.•system pitch setting 

DB 

79 

;TOH-DYE 

DB 

FFH 

;end 


Tbll_sayll5• 

DB 46 ;speech speed 

DB Voice ;system pitch setting 
DB 97 ;BURP 

DB FFH ;end 

Tbll_sayll6: 

DB 46 ;speech speed 


DB 

Voice 

;system pitch setting 

DB 

140 

; SIGH 

DB 

FFH 

; end 


Tbll_sayll7: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 


DB 


10 

; BOO 


DB 

FFH 

; end 



Tbll_sayll8 





DB 


46 

;speech speed 


DB 

Voice .system pitch setting 


DB 

85 

; WAH 



DB 

FFH 

end 



Tbll_sayll9 





DB 


60 

;speech speed 


DB 


Voice*8 

.-system pitch 

setting 

DB 


80 

■TOH-LOO 


DB 

FFH 

; end 



Tbll_sayl20 





DB 


46 

;speech speed 


DB 


Voice*8 

.•system pitch 

setting 

DB 


7 



DB 

FFH 

; end 



Tbll_sayl21 





DB 


46 

;speech speed 


DB 

Voice ;system pitch setting 


DB 


33 

;SEQ1 FEED AGE2 

HUNGRY 

DB 

FFH 

; end 



; 143 SAME AS TBL1_SAV072 


; i’bl2_sayl43: 




; DB 


46 

.•speech speed 


; DB 


Voice 

.•system pitch 

Betting 

; DB 


28 

;SEQ2 FEED AGE3 (GOOD) 

; DB 


FFH 

; end 



A-214 






;144 SAME AS TBL1_SAY058 
,-Tbl2_sayl44: 

; DB 46 ;speech speed 

; DB Voice*7 ;system pitch setting 

1 DB 68 ;SEQ2 FEED AQE3 PLEASE 

; DB FFH ,- end 

: : 

Tbll_sayl22: 

DB 46 ;speech speed 

DB Voice-2 ;system pitch setting 

DB 43 ;SEQ2 FEED AGE3 LIKE 

DB FFH ;end 

;Tbl2_sayll8: 

; DB 6G ;speech speed 

; DB Voice-8 ;system pitch setting 

; DB 161.164,161 ;SEQ10 HANGING (YAWN) 

; DB FFH ;end 

;Tbl2_sayll9: 

{ DB 60 ;speech speed 

I DB 55 .-speech speed 

; DB Voice»3 ;systetr. pitch setting 

; DB 165,165.144.165.144,165,144,165,144 

; DB Voice .-system pitch setting 

; DB 144 

DB FFH :end 

Tbll_sayl23: 

DB 46 ;speech speed 

DB Voice .-system, pitch setting 
DB 20 ;seq4 feed done 

DB FFH ; end 
;END GEORGE 07/05/98 
;END FEED 
1 
1 

; WAKE 

;GEORGE 07/06/98 


;START AT 2 

Tbll_sayl24: ;SG DONE 

DB 70 {speech speed 

DB Voice*6 ,-pitch control 

DB 165,161 

DB FFH ;end 

{PASS 

Tbl l_say 12 5 : SO DONE 

DB 55 .-speech speed 

DB Voice-2 ,-pitch control 

DB 162,63,35 

DB FFH ,- end 

; PASS 

Tbll_sayl26: ;SG DONE 

DB 55 {speech speed 

DB Voice ;system pitch setting 


A-215 





DB 82 

DB FFH ; end 

; PASS 

Tbll_sayl27: ;SG DONE 

DB 55 ;speech speed 

DB Voice ;system pitch setting 
DB 164,83 

DB FFH ; end 

Tbl2 sayl28: ;SG DONE 

DB 55 ;speech speed 

DB Voice ;system pitch setting 
DB 63,52 

DB FFH ; end 


Tbl2_sayl29 : 


;SG DONE 

DB 

40 

;speech speed 

DB Voice ;system pitch setting 

DB 

163,139 


DB FFH 

; end 


;TBL1_SAY5S 
;Tbll_say8: 


;SG DONE 

; DB 

46 

;speech speed 

; DB 

Voice*8 

•system pitch setting 

; DB 

117 


; DB 

FFH 

; end 

Tbl2_sayl30: 


; SG DONE 

DB 

55 

,- speech speed 

LB 

Voice-2 

;system pitch setting 

DB 

63 


DB FFH 

; end 


Tbl2_sayl31: 


;SG DONE 

DB 

46 

;speech speed 

L r> Voice ; system pitch setting 

B 

86 


DB 

FFH 

; end 

Tbl2_sayl32: 


; SG DONE 

DB 

46 

;speech speed 

DB Voice ;system pitch setting 

DB 

79 


DB FFH 

; end 


;TBL1_SAY12 3 
;Tbll_sayl2: 


;SG DONE 

; DB 

46 

;speech speed 

; DB 

Voice 

;system pitch setting 

; DB 

20 


; DB 

FFH 

; end 

1 

Tbl2_sayl33 : 


; SG DONE 

DB 

46 

;speech speed 


DB Voice ;system pitch setting 
DB 72 

DB FFH ;end 

Tbl2_sayl34: ;SG DONE 

DB 55 jspeech speed 

DB Voice*3 ;system pitch setting 


A-216 





DB 158 

DB FFH ;end 

Tbl2_sayl35: ,-SG DONE 

DB 46 ;speech speed 

DB Voice ;system pitch setting 
DB 35 

TB FFH ;end 

; 

Tbl2_s«/136: ,SG DONE 

DB 46 ;speech speed 

DB Voice-5 .-system pitch setting 

DB 52 

DB FFH ;end 

Tbl2_sayl37: ;S3 D014E 

DB 55 ;speech speed 

DB Voice-8 ;system pitch setting 

DB 8 

DB FFH ,-end 

Tbl2_~ayl38: ;SG DONE 

DB 45 ; speech spee' 

DB Voice-8 .-system pit rh setting 

DB 137.137,137,138 

DB FFH ,- end 

Tbl2_sayl39: ,-SG DONE 

DB 60 ;speech speed 

DB Voice .-system pitch setting 
DB 149 

DB FFH ;end 

Tbl2_s_ 140: 

DB 
DB 
DB 
DB 

Tbl2_sayl41: ;SG DONE 

DB 20 .-speech speed 

DB Voice-5 system pitch setting 

DB 161 

DB FFH ; end 

Tbl2_sayl42: ;SG DONE 

DB 46 ;speech speed 

DB Voice-9 ;system pitch setting 

DB 74 

DB FFH ;end 

Tbl2_sayl43: ,-SG DONE 

DB 80 ,-speech speed 

DB Voice-4 ;system pitch setting 

DB 82 

DB FFH ;end 

Tbl2_sayl44: ;SG DONE 

DB 46 ;speech speed 

DB Voice ;system pitch setting 


;SG DONE 

40 .-speech speed 

Voice-3 .-system pitch setting 
16 

FFH ;end 


A-217 



DB 14 

DB FFH ;end 

Tbl2_sayl45: ;SG DONE 

DB 46 ;speech speed 

DB Voice ;pitch control 
DB 6 

DB FFH ; end 

Tbl2_sayl46: ;SG DONE 

DB 46 ;speech speed 

DB Voice ;system pitch setting 
DB 83 

DB FFH ;end 

Tbl2_say!47: ;SG DONE 

DB 70 ;speech speed 

DB Voice ;pitch control 
DB 76 

DB FFH ;end 

Tbl2_sayl48: ;SG DONE 

DB 60 ;speech speed 

DB Voice ;system patch setting 
DB 37 

DB FFH ; end 

;TBL1_SAY53 

;Tbll_say29: ;SG DONE 

; DB 46 .-speech speed 

; DE Voice ;system pitch setting 

; DB 52 

; DB FFH ;end 

Tbl2_sayl49: ;SG DONE 

DB 30 ;speech speed 

DB Vcice*5 .-system pitch setting 

DB 47 

DB FFH ;end 

Tbl2_sayl50: ;SG DONE 

DB 6C ;speech speed 

DB Voice 3 ;system pitch setting 

DB 81 

DB FFH ;end 

Tbl2_saylSl: ;SG DONE 

DB 55 ;speech speed 

DB Voice-7 ;system pitch setting 

DB 53 

DB FFH ;end 

Tbl2_sayl52: ;SG DONE 

DB 40 ;speech speed 

DB Voice-10 ;system pitch setting 

DB 35 

DB FFH ; end 

Tt say153: ;SG DONE 

DB 46 ;speech speed 

DB Voice-10 jsystem pitch setting 


A-218 




DB 39 

DB FFH ; end 

Tbl2_sayl54: :SG DONE 

DB 55 ispeech speed 

DB Voice*3 ;system pitch setting 

DB 165,165,144,165,144.165,144.165,165,165.165,144 

DB FFH ;end 

Tbl2_sayl55: ;SG DONE 

DB 46 ;speech speed 

DB Voice ;system pitch setting 
DB 72 

DB FFH ;end 

Tbl2_sayl56: ;SG DONE 

DB 60 ;speech speed 

DB Voice .-system pitch setting 
DB 1 

DB FFH ;end 


TBL1_SAY53 

Tbll_say38: 

DB 46 

DB Voice 

DB 52 

DB FFH 

END GEORGE 07/06/98 
END WAKE 


;GEORGE 07/06/98 
;HUNGER 

Tbl2_sayl57: ;SG DONE ;HUNGER 

DB 65 .-speech speed 

DB Voice»8 ;system pitch setting 

DB 68 

DB FFH ,-end 

Tbl2_sayl58: ;SG DONE 

DB 7 C ,-speech speed 

DB Voice .-system pitch setting 
DB 23 

DB FFH {end 

Tbi2_sayl59: ;SG DONE 

DB 40 ,-speech speed 

DB Voice-7 ;system pitch setting 

DB 7 

DB FFH ,- end 

Tbl2..sayl60: ;SG DONE 

DB 55 {speech speed 

DB Voice .-system pitch setting 
DB 33 

DB FFH {end 

Tbl2_sayl61: ;SG DONE 

DB 75 ,-speech speed 


; SG DONE 
,- speech speed 
!system pitch setting 

; end 


A-219 




DB 

oice ; system pitch setting 


DB 


55 



DB 

FFH 

;end 



Tbl2_sayl62: 



;SG DONE 


DB 


40 

;speech speed 


DB 


Voice-15 

; system pitch setting 

DB 


84 



DB 

FFH 

; end 



Tbl2_sayl63 : 



;SG DONE 


DB 


65 

;speech speed 


DB 


Voice»8 

;system pitch 

setting 

DB 


157 



DB 

FFH 

; end 



Tbl2_sayl64 



;SG DONE 


DB 


55 

; speech speed 


DB 


Vcice»6 

; system pitch 

setting 

Do 


119 



DB 

FFH 

; end 



Tbl2_sayl65 



; SG DONE 


DB 


65 

; speech speed 


DB 


Vcice»8 

; system pitch 

setting 

DB 


es 



DB 

FFH 

.-end 



Tbl2„sayl66 



;SG DONE 


DB 


55 

; speech speed 


DB 

Voice ; system pitch setting 


DB 


14 



DB 

FFH 

; end 



Tbl2_sayl67 



; SG DONE 


DB 


40 

; speech speed 


DB 

Voice ; system pitch setting 


DB 


8 



DB 

FFH 

; end 




Tbl2_sayl68: ;SG DONE ;SAME AS SAY135 WITH DIFFERENT MOTOR 

POS. 

DB 46 ;speech speed 

DB Voice ;system pitch setting 
DB 35 

DB FFH ;end 
;END GEORGE 07/06/98 
;END HUNGER 


;GEORGE 07/07/98 
;INVERT 
;WAS68 

Tbl2_sayl69: ;SG DONE ;INVERT 

DB 85 ;speech speed 

DB Voice ;system pitch setting 
DB 36 

Do FFH ;end 


A-220 




Tbl2_sayl70: ;SG DONE 

DB 55 ;speech speed 

DB Voice+8 ;system pitch setting 

DB 94 

DB FFH ;end 

; 

Tb12_sayl71: ;SG TONE 

DB 70 ;spe.-ch speed 

DB Voice*8 ;system pitch setting 

DB 158 

DB FFH ;end 

Tbl2_sayl72: ;SG DONE 

DB 55 i speech speed 

DB Voice*8 ,-sy; am pitch setting 

DB 148 

DB FFH ;end 

Tbl2_sayl73: ;SG DONE 

DB 100 ;speech speed 

DB Voice»8 ;system pitch netting 

DB 97 

DB FFH ;end 

Tbl2_sayl74: ;SG DONE 

DB 50 ;speech speed 

DB Voice+5 .-system pitch setting 

DB 8 

DB FFH ;end 

Tbl2_sayl75: ;SG DONE 

DI 55 ~ ;speech speed 

DB Voice-5 .-system pitch setting 

DB 9 

DB FFH ;end 

Tbl2_sayl76: ,-SG DONE 

DB 50 ;speech speed 

DB Voice-10 ;system pitch setting 

DB 54 

DB FFH ,- end 

; 

Tbl2_sayl77: ;SG DONE 

DB 70 ;speech speed 

DB Voice-6 ;system pitch setting 

DB 57 

DB FFH ,- end 

I 

Tbl2_sayl78: ;SO DONE 

DB ■'4 ; speech speed 

DB Voice ;system pitch setting 
DB 24 

DB FFH ,- end 

I 

Tbl2_sayl79: ;8G DONE 

DB 55 ;speech speed 

DB Voice-5 ;system pitch setting 

DB 10 

DB FFH ;end 


A-221 



Tbl2_sayl80: 


;SG DONE 

DB 

65 

speech speed 

DB 

Voice-5 

.•system pitch setting 

DB 

80 


DB FFH 

; end 


Tbl2_sayl31: 


;SG DONE 

DB 

55 

speech speed 

DB 

Voice-10 

;system pitch setting 

DB 

60 


DB FFH 

j end 


; 

Tbl2_sayl82: 


; SG DONE 

DB 

55 

;speech speed 

DB 

Voice-10 

.•system pitch setting 

DB 

43 


DB FFH 

;end 


Tbl2_sayl83: 


;SG DONE 

DB 

75 

;speech speed 

DB 

Voice-8 

.■system pitch setting 

DB 

90 


DB FFH 

; end 


Tbl2_sayl84: 


;SG DONE 

DB 

75 

;speech speed 

DB 

Voice-4 

;system pitch setting 

DB 

29 


DB FFH 

; end 


Tbl2_sayl8S: 


;SG DONE 

DB 

55 

.•speech speed 

DB 

Voice»5 

;system pitch setting 

DB 

34 


DB 

FFH 

; end 

Tbl2_sayl86: 


;SG DONE 

DB 

65 

;speech speec 

DB 

Voice*2 

.•system pitch setting 

DB 

45 


DB FFH 

; end 


Tbl2_sayl87 s 


;SG DONE 

DB 

65 

;speech speed 

DB 

Voice-7 

;system pitch etting 

DB 

39 


DB FFH ; end 


Tbl2_sayl88: 


;SG DONE 

DB 

35 

.■speech speed 

DB 

Voice 

.•system pitch setting 

DB 

130 


DB FFH ; end 



Tbl2_sayl58: 
Tbll say88: 


; SG DONE 


DB 

75 

;speech speed 


DB 

Voi-'° 

;system pitch setting 


DB 

23 



DB 

FFH 

.-end 


A-222 




Tbl2_sayl89: ;S0 DONE 

DB 55 ;speech speed 

DB Voice ;system pitch setting 
DB 1 

DB FFH ;end 

Tbl2_sayl90: 

DB 100 

DB Voice 

DB 97 

DP FFH ;end 

; 

Tbl2_sayl91: 

DB 100 

DB Voice-10 

DB 97 

DB FFH ; end 

Tbl2_sayl92: 

DB 100 

DB Voice-20 

DB 97 

DB FFH ; end 

;END GEORGE 07/07/98 

;END INVERT 

;start at 202 

Tbl2_sayl93: ;SG DONE ;BACKSG 

DB 70 ;speech speed 

DB Voice ;system pitch setting 
DB 153 

DB FFH ;end 

Tbl2_sayl94: ;SG DONE 

DB 75 ;speech speed 

DB Voice ;system pitch setting 
DB 2 

DB FFH ;end 

~bl2_sayl95: ;SG DONE 

DB 55 ;speech speed 

DF Voice ;system pitch setting 
DB 39 

DB FFH ;end 

Tbl2_sayl96: ;SG DONE 

DB 65 ;speech speed 

DB Voice*4 ;system pitch setting 

DB 67 j PET 

DB FFH ; end 

Tbl2_sayl97: ;SG DONE 

DB 75 ;speech speed 

DB Voice*b ;system pitch setting 

DB 1 

DB FFH ; end 

Tbl2_sayl98: ;SG DONE 

DB 55 ;speech speed 

DB Voice-10 ;system pitch setting 


;speech sp-sed 
.•system pitch setting 


;speech speed 
.■system pitch setting 


;speech speed 
.system pitch setting 


A-223 



DB 


146 

DB 

FFH 

{end 

• 

Tbl2_sayl99 


;SG DoNE 

DB 


55 {speech speed 

DB 


Voice»5 {system pitch setting 

DB 


35 

DB 

FFH 

{end 

{ 

Tbl2..say200 


,-SG DONE 

DB 


80 {speech speed 

DB 


Voice-5 {system pitch setting 

DB 


55 

DB 

FFH 

{end 

Tbl2_say201 


{SG DONE 

DB 


70 ,-speech speed 

DB 


Voice-5 .-system pitch setting 

DB 


62 

DB 

FFH 

end 

Tbl2_say202 


,-SG DONE 

DB 


80 speech speed 

DB 


Voice-5 isystem pitch setting 

DB 


84 

DB 

FFH 

{end 

•Tbl2_sayl48 


;Tbl2_say212: 

,-SG DONE 

,• DB 


70 ,-speech speed 

{ DB 


Voice-5 system pitch setting 

; DB 


29 

; DB 


FFH ;end 

Tbl2_say203 


,-SG DONE 

DB 


70 ,• speech speed 


DB Voice system pitch setting 
DB 37 

DB FFH f end 

Tbl2_say204: ,-SG DONE 

DB 55 ;speech speed 

DB Voice ,-syste:. pitch setting 
DB 152 

DB FFH ;end 

Tbl2_say205: ;SG DONE 

DB 65 ;speech speed 

DB Voice-5 ;system pitch setting 

DB 52 

DB FFH j end 

; 

Tbl2_say206: ;SG DONE 

DB 65 {speech speed 

DB Voice*2 ;system pitch setting 

DB 47 

DB FFH {end 

Tbl2_say207: ;SG DONE 


A-224 




DB 65 ;speech speed 

DB Voice-3 ;system pitch setting 

DB 81 

DB FFH ;end 

; 

Tbl2_say208: ;SG DONE 

DB 70 ;speech speed 

DB Voice-*6 ; system pitch setting 

DB 48 

DB FFH ,• end 

Tbl2_say209: ;SG DONE 

DB 70 ;speech speed 

DB Voice*-3 ; system pitch setting 

DB 161 

DB FFH ,-end 

Tbl2_say210: ;SG DONE 

DB 55 ;speech speed 

DB Voice ;system pitch setting 
DB 15 

DB FFH ; end 

Tbl2_say211: ;SG DONE 

DB 45 ;speech -peed 

DB Voice-10 ;Sj -em pitch setting 

DB 8 

DB FFH ; end 

Tbl2_say212: ;-G DONE 

DB 55 ;speech speed 

DB Voice-10 ;system pitch setting 

DB 42 

DB FFH ,-end 

Tbl2_say213: 

DB 
DB 
DB 
DB 

Tbl2_say214: ;SG DONE 

DB 50 ;speech speed 

DB Voice system pitch setting 
DB 75 

DB FFH i end 

1 

Tbl2_say215: ;SG DONE 

DB 55 ;speech spe.d 

DB Voice .-system pitch sett ng 
DB 101 

DB FFH ;end 

Tbl2_say216: ;SG DONE 

DB 70 ;speech speed 

DB Voice-3 .-system pitch setting 

DB 49 

DB FFH ;end 

Tbl2_say217: ,-SG DONE 


,-SG DONE 

65 .-speech speed 

Voice-15 ,-system pitch setting 

57 

FFH ;end 


A-225 



DB 75 ;speech speed 

DB Voice+5 ;system pitch setting 

DB 86 

DB FFH jend 

Tbl2_say218: ;SG DONE 

DB 55 ;speech speed 

DB Voice ;system pitch setting 
DB 72 

DB FFH ;end 

Tbl2_say219: ;SG DONE 

DB 55 /speech speed 

DB Voice*5 /system pitch setting 

DB 150 

DB FFH /end 

Tbl2_say220: /SG DONE 

DB 55 /speech speed 

DB Vcice*5 /system pitch setting 

DB 151 

DB FFH /end 

Tbl2_say221: /SG DONE 

DB 55 /speech speed 

DB Voice /system pitch setting 
DB 97 

DB FFH zend 

Tbl2_say222: /SG DONE 

DB 70 /speech speed 

DB Voice /system pitch setting 
DB 165.149 

DB FFH ;end 

Tbl2_say223: /SG DONE 

DB 55 /speech speed 

DB Voice /system pitch setting 

DB 129 

DB FFH z er. ’ 

Tbl2_say224/ /SG DONE 

DB 75 /speech spued 

DB Voice-4 /system pitch setting 

DB 50 

DB FFH zend 

TL12_say225: /SG DONE 

DB 55 /speech speed 

DB Voice*5 /system pitch setting 

DB 32 

DB FFH /end 

Tbl2_say226: 

DB 
DB 
DB 

DB FFH 

J 

Tbl2_say227: /SG DONE 


/SG DONE 

55 zspeech speed 

Voice*5 /system pitch setting 
165,140 
/end 



DB 


65 ;speech speed 

DB 

Voice ;system pitch setting 

DB 


144 

DB 

FFH 

;end 

Tbl2_say228: 


;SG DONE 

DB 


85 ;speech speed 

DB 

Voice ;system pitch setting 

DB 


18 

DB 

FFH 

send 

Tbl2_say229 


;SG DONE 

DB 


50 ;speech speed 

DB 


Voice»8 ;system pitch setting 

DB 


118 

DB 

FFH 

; end 

Tbl2_say230: 

,-SG DONE 

DB 


65 ;speech speed 

DB 

Voice ;system pitch setting 

DB 


66 

DB 

FFH 

; end 

Tbl2_say231 


;SG DONE 

DB 


70 ;speech speed 

DB 


Voice+8 ;system pitch setting 

DB 


87 

DB 

FFH 

; end 

Tbl2_say232 


;SG DONE 

DB 


60 ;speech speed 

DB 


Voice»8 ;system pitch setting 

DB 


71 

DB 

FFH 

;end 

Tbl2_say233 


;SG DONE 

DB 


55 ;speech speed 

DB 

Voice ;system pitch setting 

DB 


93 

DB 

r’FH 

j end 

; 

Tbl2_say234 


; SG DONE 

DB 


46 ;speech speed 

DB 


Voice-20 ;syster pitch setting 

DB 


161 

DB 

FFH 

; end 

Tbl2_say235 



DB 


70 ;speech speed 

Db 


Voice ;system pitch setting 

DB 


81 

DB 

FFH 

j end 

; 

Tbl2_say236 



DB 


70 (speech speed 

DB 


Voice (system pitch setting 

DB 


93 

DB 

FFH 

(end 


A-227 



SICK 

GEORGE 07/08/98 
start at 39 


Tbl2_say237: 



J SG DONE ; SICK1 

DB 


55 

speech speed 

DB 


Voice+5 

.•system pitch setting 

DB 


165,141 


DB 

FFH 

; end 


;Tbl2_sayl35 




.•Tbll_say40 i 



;SG DONE 

; DB 


46 

;speech speed 

; DB 


Voice 

;system pitch setting 

; DB 


35 


; DB 


FFH 

; end 

;Tbll_sayll7 




;Tbll_say41: 



;SG DONE 

; DB 


46 

;speech speed 

; DB 


Voice 

;system pitch setting 

; DB 


10 


; DB 


FFH 

; end 

Tbl2_say238: 



; SG DONE 

DB 


46 

;speech speed 

DB 

Voice .system pitch setting 

DB 


40 


DB 

FFH 

; end 


Tbl2_say239: 



; SG DONE 

DB 


46 

;speech speed 

DB 


Voice-5 

;system pitch setting 

DB 


60 


DB 

FFH 

; end 


Tbl2_say240 



; SG DONE 

DB 


50 

;speech speed 

DB 

Voice ;system pitch setting 

DB 


30 


DB 

FFH 

end 


;Tbll_say53 




;Tbll_say45 



;SG DONE 

; DB 


46 

;speech speed 

; DB 


Voice 

;system pitch setting 

; DB 


52 


; DB 


FFH 

; end 

Tbl2_say241 



; SG DONE 

DB 


70 

;speech speed 

DB 


Voice-8 

.■system pitch setting 

DB 


17 


DB 

FFH 

, er. .1 


Tbl2_say242 



;SG DONE 

DB 


80 

;speech speed 

DB 


Vo c«-10 ;system pitch setting 

DB 


46 


DB 

FFH 

; end 


Tbl2_say243 



; SG DONE 

DB 


55 

;speech speed 

DB 


Voice-8 

;system pitch setting 







DB 8 

DB FFH /end 

Tbl2_say244: ;SG DONE 

DB 40 ;speech speed 

DB Voice-8 ;system pitch setting 

DB 73 

DB FFH / end 

Tbl2_say24S: ;SG DONE 

DB 75 ;speech speed 

DB Voice-5 ;system pitch setting 

DB 80 

DB FFH /end 

;Tbl2_sayl82 

;Tbll_say51: zSG DONE 

; DB 55 ;speech speed 

• DB Voice-10 ;system pitch setting 

j DB 43 

; DB FFH ;end 

Tbl2_say246: ;SG DONE 

DB 70 ;speech speed 

DB Voice ;system pitch setting 
DB 9 

DB FFH / end 

Tbl2_say247 
DB 
DB 
DB 
DB 

Tbl2_say248: ;SG DONE 

DB 100 :speech speed 

DB Voice /system pitch setting 
DB 140 

DB FFH ;end 

Tbl2_say249: ;SG DONE 

DB 40 /speech speed 

DB Voice-20 /system pitch setting 

DB 162,129 

DB FFH z end 

Tbl2_say250: /SG DONE 

DB 100 /speech speed 

DB Voice /system pitch setting 
DB 142 

DB FFH z end 

/END GEORGE 07/08/98 
/END SICK 


/LIGHT 

/GEORGE 07/08/98 
/starts at 2 
Tbl2_say251: 

DB 40 /speech speed DONE RB BEGIN LIGHT 

D.(BRIGHTER) 


; SG DONE 

60 /speech speed 

Voice-12 /system pitch setting 

90,165 

FFH /end 


A-229 





-1 


DB Voice ;pitch control 
DB 119,18 


DB 

FFH 

; end 


; Tbll_say252: 

DB 

40 

; speech speed 

DO NOT USE 

DB 


;pitch control 

SEE SAY 15 

DB 

FFH 

; end 



Tbl2_say252: 



DB 

75 ;speech speed 

Done RB 

DB 

Voice*5 ;system pitch 

setting 

DB 

142 


DB 

FFH ;end 


Tbl2_say253 



DB 

46 ;speech speed 

done RB 

DB 

Voice ;system pitch setting 


DB 

158.165,165,14.6 


DB 

FFH ;end 


Tbl2_say2S4 



DB 

46 ;speech speed 

done RB 


DB Voice ;system pitch setting 
DB 102.149 

DB FFH ;end 

Tbl2_say2S5: 

DB 46 ;speecn speed DONE RB 

DB Vcice-8 ;system pitch setting 

DB 119.35.164,5,81 

DB FFH ; end 

Tbl3_say256: 

DB 46 ;speech speed DONE RB 

DB Voice-4 ;system pitch setting 

DB 148,163,145 

DB FFK ;end 

Tbl3_say257: 

DB 46 ;speech speed DONE RB 

DB Voice .-system pitch setting 
DB 131,164,95,149,123 

DB FFH i end 

Tbl3_say258: 

DB 55 ;speech speed SEO 4, AGE 2 DONE RB 

DB Voice-4 ;system pitch setting 

DB 158,163,8,6 

DB FFH ;end 

Tbl3_say259: 

DB 45 .speech s; d SEQ 6, AGE 2 DONE RB 

DB Voice*8 ;system p.tch setting 

DB 119,35,70,81 

DB FFH ; end 

; 

Tbl3_say260: 

DB 46 ;speech speed RB DONE 


A-230 




DB Voice*8 ;system pitch setting SEQ 1, AGE 3 

DB 119,66 

DB FFH ;end 

; 

Tbl3_say261: 

DB 46 ;speech spi d SEQ 4, AGE 3 RB DONE 

DB Voice-3 ;system p tch setting 

DB 158,14,42 

DB FFH iend 

Tbl3_say262: 

DB 46 ;speech speed SEQ 6 AGE 3 RB DONE 

DB Voice-3 ;system pitch setting 

DB 119,35,5,93 

DB FFH ,-end 

Tbl3_say263: 

DB 60 ;speech speed SEQ 2, AGE 1 RB DONE 

DB Voice*8 ;system pitch setting 

DB 131,95,149 

DB FFH ;end 

Tbl3_say264: 

DB 46 ;speech speed RB DONE 

DB Vcice-4 .-system pitch setting 

DB 158,8.42 

DB FFH ,- end 

Tbl3_say265: ; K5 DO*® 

DB 46 ;speech speed 

DB Voice-4 ;system pitch setting 

DB 119,35,70.93 

DB FFH ;end 

;END GEORGE 07/08/98 
,-END LIGHT 
; DARK 

,-GEORGE 07/08/98 
Tbl3_say266: 

DB 52 ;speech speed BEGIN LIGHT D. (DARKERI 

DB Voice *8 ;system pitch setting SEQ 1 AGE 1 RB DONE 

DB 119,10,162,6 

DB FFH ;end 

Tbl3_say267: 

DB 46 .-speech speed SEQ 2 AGE 1 DONE RB 

DB Voice*8 ;system pitch setting 

"B 119,6,21 

D<- FFH ; end 

! 

Tbl3_say268: 

DB 55 ;speech speed 

DB Voice*8 ;system pitch setting SEQ 3 AGE 1 DONE RB 

DB 119,6,163,82,163,23 

DB FFH ;end 

Tbl3_say269: 

DB 40 ;speech speed 

DB Voice*8 system pitch setting SEQ 4 AGE 1 DONE RB 

DB 158,101,163,104 


A-231 




DB FFH ; end 

Tbl3_say270: 

DB 70 ;speech speed 

DB Voice*8 ;system pitch setting 

DB 148.10,6,148 

DB FFH ; end 

Tbl3_say271: 

DB 59 ;speech speed 

DB Voice*4 ;system pitch setting 

DB 149,163,21,21 .-SEQ6 AGE4/SEQ14 AGE4 LIGHT js 

DB FFH ; end 

Tbl3_say272: 

DB 52 ; speech speed 

DB Voice*8 ;system pitch setting 

DB 119,35,162,10,5.81 

DB FFH ;end DONE RB 

Tbl3_say273: 

DB 60 ;speech speed 

DB Voice*8 ;pitch control ONE RB 

DB 63,163.149,163,163,51.35,152 

DB FFH ; end 

Tbl3_say274: 

DB 52 ;speech speed 

DB Voice*2 ;system pitch setting 

DB 119,60.6 

DB FFH ; end 

Tbl3_say275: 

DB 52 ;speech speed 

DB Voice*2 ,-pitch control 

DB 119,60.45,85 

DB FFH ; end DONE RB 

Tbl3_say276: 

DB 60 ;speech speed 

DB Voice*! ;system pitch setting DONE RB 

DB 119,42,82,23 

DB FFH ;end 

Tbl3_say277: 

DB 70 ;speech speed 

DB Voice*! ;system pitch setting 

DB 148,60,6,148 

DB FFH ;end DONE RB 

Tbl3_Fay278: 

DB 52 ;speech speed 

DB Voice*! ;system pitch setting DONE RB 

DB 119,52,60,70.81 

DB FFH ;end 

Tbl3_say279: 

DB 52 ;speech speed 

DB Voice ;system pitch setting 
DB 119,10,42 


A-232 



DB 


FFH 


; end 


DONE RB 


Tbl3_say280: 

DB 52 ;speech speed 

DB Voice ;system pitch setting DONE RB 

DB 119,10,34,85 

DB FFH j end 

I 

Tbl3_say281: 

DB 60 ;speech speed 

DB Voice ;system pitch setting 
DB 119,42,83,23 

DB FFH ;end DONE RB 

Tbl3_say282: 

DB 52 ;speech speed 

DB Voice ; system pitch setting 
DB 119,52,60,5,93 

DB FFH ;end DONE RB 

Tbl3_say283: 

DB 60 ;speech speed !'NOTE!! PRINTED 7, ~ HAD 

WRONG WORD NUMBER FOR "KISS" 

DB Voice ;system pitch setting 
DB 63.149,162,38,35,152 

DB FFH ;end DONE RB 

Tbl3_say284: 

DB 52 ;speech speed 

DB Voice ;system pitch setting 
DB 119,60,42 

DB FFH ; end DONE RB 

Tbl3_say285: 

DB 52 ;speech speed 

DB Voice-3 ;system pitch setting 

DB 119,60,34,85 

DB FFH ; end 

Tbl3_say286: 

DB 60 j speech speed 

DB Voice ;system pitch setting 
DB 119,42,8'.68 

DB FFH ;end 

I 

Tbl3_say287: 

DB 70 (speech speed 

DB Voice (system pitch setting 
DB 148,60,42,148 

DB FFH ,- end 

Tbl3_say288: 

DB 46 (speech speed 

DB Voice .-system pitch setting 

DB 119,163.52,60,70,93 ;SEQ7 AGE4/SEQ15 AGE 4 LIGHT js 

DB FFH ,• end 

Tbl3_say289: 

DB 50 (speech speed 

DB Voice (system pitch setting 


A-233 



; SEQS AGE4/SEQ16 AGE 4 LIGHT -is 


DB 63.165,149,38.52.152 

DB FFH ; end 

.END GEORGE 07/08/98 

.-END DARK 

;SOUND 

••start 43 

.bl3_say290: 

DB 50 ;speech speed 

DB Voice ;system pitch setting 

DB 163,148,165,17 ;S1-A1,. '1/SI-A2 SOUND js 

DB FFH ; end ; S9-A2/S1-A3/S9-A3 SOUND js 

Tbl3_say291: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 85,165,165,165 ;S2-A1/S10-A1/S2-A1 SOUND js 

DB 165,165,140 ;S10-A2/S2-A3/S10-A3 SOUND js 

DB FFH .end ;S2-A4/S10-A4 SOUND js 

Tbl3_say292: 

DB 50 ;speech speed 

DB Voice ;system pitch setting 
DB 121,165.164.14.163,41.21 

DB "FH ;end 

Tbl3_say293: 

DB 46 ;speech speed 

jB Voice ,-system pitch setting 
DB 163.125,164.5.162.41 

IB FFH ;end 

Tbl3_say294: 

D3 46 ;speech speeu 

DB Voice ;system pitch setting 

DB 35,163,89 ;S5-A' Sli A1 SOUND (with say/m2i js 

DB FFH ; end 

Tbl3_say29S: 

DB 53 ;speech speed 

DB Voice ;system pitch setting 

DB 163.148,163,36 ;S6-A1/S14-A1/S6-A2 SOUND js 

DB FFH ;end ;S14-A2/S6-A3/S14-A3 SOUND js 

Tbl3_say2'- 

ti 53 ;speech speed 

DB Voice ;system pitch setting 

DB 17 ;S7-A1/S15-A1 SOUND (with say/m2) js 

DB FFH ; end 

Tbl3_say29>: 

DB 60 ;speech speed 

DB Voice ;system pitch setting 

DB 122,164,21,164,21 ;S8-A1/S16-A1 SOUND js 

DB FFH ;end ;S8-A3/S16-A3 SOUND js 

Tbl3_say298: 

DB 46 '.-spee-h speed 

DB Voice ;system pitch setting 


;S3-Al/Sll-Al'SOUND js 


;S4-Al/S12-n. . JND js 





JC3-A2/S11-A2 SOUND js 


DB 121,165,164,8,16'.41.21 

DB FFH ;end 

Tbl3_say299: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 163,129,164,5,165,73 ;S4-A2/S12-A2 SOUND js 

DB FFH ;end 

; 

Tbl3_say300: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 35,165,31 {S5-A2/S13-A2/SS-A3 SOUND (with say/m2) 

j» 

DB FFH jend ,-S13-A3/S5-A4/S13-A4 SOUND (with say/m2) 

Tbl3_say301: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 8,162,41,163,85 ;S7-A2/S15-A2 SOUND (with 

say/m2) js 

DB FFH ; end 

; 

Tbl3_say302: 

DB 60 ;speech speed 

DB Voice ;system pitch setting 

DB 122,164,21 ;S8-A2/S16-A2 SOUND js 

DB FFH ;end 


Tbl3_Bay303: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 121.165,164.14,163,73,21 ;S3-.',3/Sll-A3 SOUND js 

DB FFH :end 

f 

Tbl3_say304: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 163,129,164,35,165,44 ;S4-A3/S12-A3 SOUND js 

DB FFH ;end ;F4-A4/S12-A4 SOUND js 

J 

Tbl3_say305: 

DB 46 i speech speed 

DB Voice ;sys cm pitch setting 

DB 8,73,164,85 ;S7-A3/S15-A3 SOUND (with say/m2tjs 

DB FFH ;end ;S7-A4/S15-A4 SOUND (with say/m2ljs 

I 

Tbl3_say306: 

DB 55 ispeech speed 

DB Voice ;system pitch setting 

DB 164,148,164,163,46 ;S1-A4/S9-A4 SOUND js 

DB FFH ;end 

I 

Tbl3_say307: 

DB 46 jspeech speed 

DB Voice ,-system pitch setting 

DB 121,165,164,8,163.73,21 ;S3-A4/S11-A4 SOUND js 

DB FFH ;end 

I 


A-23S 



Tbl3_say308: 

DB 55 ;speech speed 

DB Voice ;system pitch setting 
DB 164,148,164,163,54 

DB FFH j end 

; 

Tbl3_say309: 

DB 60 ;speech speed 

DB Voice ;system pitch setting 
DB 122,164,163,88,164.21 

DB FFH ;end 


;END SOUND 

; TILT 

;GEORGE 07/09/98 

Tbl3_say310: 

DB 56 ;speech speed 

DB Voice*8 ,-pitch control 

DB 160 ;S1 A1 TILT/S4 A1 TILT/S14 A1 TILT js 

DB FFH ,-end 

Tbl3_say311: 

DB 46 ;speech speed 

DB Voice ,-pitch control 

DB 157 36 ;S2 A1 TILT js 

DB FFH ; end 

Tbl3_say312 : 

DB 46 ;speech speed 

DB Voice ,-system pitch setting 

DB 158,9 ;S3 A1 TILT js 

DB FFH ;end 

Tbl3_say313: 

DB 46 ;speech speed 

DB Voice*8 ;system pitch setting 

DB 154 ;S5 A1/S4 A2/S2 A3/S2 A4 TILT js 

DB FFH ,-end 

Tbl3_say314: 

DB 46 !speech speed 

DB Voice ;system pitch setting 

DB 159,82,39 ,-S6 A1 TILT js 

DB FFH ;end 

Tbl3_6fty315: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 155,39,39 ;S7 A1 TILT/S6 A2 TILT js 

DB FFH ;end 

Tbl3_say316: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 37,152 ;S8 A1 TILT (with say/m5) js 

DB FFH ; end 

Tbl3_say317: 


;S6-A4/S14-A4 SOUND js 


;S8-A4/S16-A4 SOUND js 


A-236 




DB 


4 6 ;speech speed 

DB Voice ;system pitch setting 

DB 154,120 ;S9 A1 TILT/S9 A2 TILT js 

DB FFH ; end 

Tbl3_say318: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 155,120,120 ;S10 A1 TILT/S10 A2 TILT js 

DB FFH ;end 

I 

Tbl3_say319: 

DB 46 ispeech speed 

DB Voice ;system pitch setting 

DB 35,57 ;S11 A1 TILT (with say/m2l js 

DB FFH ,-end 

Tbl3_say320: 

DB 48 ;speech speed 

DB Voice ;system pitch setting 

DB 158,10,80 ;S12 A1 TILT js 

DB FFH ;end 

Tbl3_say321: 

DB 46 ;speech speed 

DB Voice .system pitch setting 

DB 119,160 ;S13 A1 / S15 A3 TILT js 

DB FFH ; end 

Tbl3_say322: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 160,9 ;S15 A1 TILT js 

DB FFH ;end 

Tbl3_s .-323: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 154,149 ;S16 A1 / S15 A2 / S13 A3 TILT js 

DB FFH ;end 

Tbl3_say324: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 160 ;S1 A2/S3 A2/S1 A3/S1 A4 TILT js 

DB FFH ;end 

Tbl3_say325: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 52,9 ;S2 A1 TILT (with say/ml6) js 

DB FFH ;end 

Tbl3_say326: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB ' 159,83,39 ;S5 A2 TILT js 

DB FFH ;end 

Tbl3_say327: 


A-237 



DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 52,43,81,152 ,-S7 A2 TILT (with say/m5) js 

DB FFH ; end 

Tbl3_say328: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 155 ;S8 A2 TILT (with say/m5) js 

DB FFH ; end 

Tbl3_say329: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 52,57 ;Sll A2 TILT (with say/m2) js 

DB FFH ; end 

Tbl3_say330: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 158,60.80 ;S12 A2 TILT js 

DB FFH ;end 

Tbl3_say331: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 163,156 ;S13 A2 TILT (with say/m5) js 

DB FFH ; end 

Tbl3_say332: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 8,22,85 ;S14 A2 TILT js 

DB FFH ;end 

Tbl3_say333: 

DB 46 ;speech speed 

DB Voice ;pitch control 

DB 154,118,163.145,165,162.118 ;S16 A2/S14 A3/S14 A4 

TILT js 

DB FFH ; end 

Tbl3_say334 : 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 159 ;S3 A3 TILT js 

DB FFH ;end 

Tbl3_say335: 

DB 46 ;speech speed 

DB Voice ;pitch control 

DB 83,1 ;S4 A3/S4 A4 TILT (with say/m26) js 

DB FFH ; end 

Tbl3_say336: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 155,52,62,85 ;S5 A3 TILT js 

DB FFH ;end 


A-238 



Tbl3_say337: 

DB 50 ;speech 

DB Voice ;system pitch 
DB 52,48,93,152 

DB FFH ;end 

Tbl3_say338: 

DB 46 ;speech 

DB Voice ;system pitch 
DB 155 

DB FFH ;end 

Tbl3_say339: 

DB 46 ;speech 

DB Voice ;system pitch 
DB 155,120,163,149 

DB FFH ;end 

Tbl3_say340: 

DB 46 ;speech 

DB Voice ,-system pitch 
DB 165,129 

DB FFH ;end 

Tbl3_say341: 

DB 46 ;speech 

DB Voice ;system pitch 
DB 160,163,120,120 

DB FFH ;end 

Tbl3_say342: 

DB 46 ;speech 

DB Voice ;system pitch 
DB 163,23 

DB FFH ;end 

Tbl3_say343: 

DB 55 ;speech 

DB Voice ;system pitch 
DB 164,156 

DB FFH ;end 

Tbl3_say344: 

DB 46 ;speech 

DB Voice ;system pitch 
DB 163,1,163,1,117 

DB FFH ;end 

Tbl3_say345: 

DB 46 ;speech 

DB Voice ;system pitch 
DB 27,162,149 

DB FFH ; end 

; 

Tbl3_say346: 

DB 46 jspeech 

DB Voice ;system pitch 
DB 155,52,29,163,85 

jB FFH ; end 

; 


speed 

setting 

;S6 A3 TILT (with say/m5) js 


speed 

setting 

;S7 A3/S7 A4 TILT (with say/m5) js 


speed 

setting 

;S8 A3/S8 A4 TILT js 


speed 

setting 

;S9 A3/S9 A4 TILT (with sa;, 'm9l js 


speed 

setting 

,-£10 A3/S10 A4 TILT (with say/ml6ljs 


speed 

setting 

;S11 A3/S15 A4 TILT (with say,m2&21) js 


speed 

setting 

;S12 A3 TILT (with say/m5) js 


speed 

setting 

;S16 A3 TILT (with say/mSI js 


speed 

setting 

;S3 A4 TILT (with say/m26! js 


speed 

setting 

;S5 A4 TILT js 


A-239 



Tbl3_say347: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 52,47,93,164.152 ;S6 A4 TILT (with soy/m5) js 

DB FFH ; end 

Tb2 J_say348: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 52,24,68 ;S11 A4 TILT (with say/m2) js 

DB FFH ;end 

Tbl3_say349: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 22,149 ;S13 A4 TILT (with say/m5) js 

DB FFH ;end 

Tbl3_say350: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 163,1,163,39.163,117 ;S16 A4 TILT (with say/m5) js 

DB FFH ;end 

;END GEORGE 07/09/98 

;GEORGE 

;IR 07/09/98 

Tbl3_say351: 

DB 46 ;speech speed 

DB Voice’S ,-pitch control 

DB 40 ;SEQ1,seq2.seq3,seq4 ir age 1 

DB FFH ;end 

Tbl3_say352: 

DB 46 ;speech speed 

DB Voice ;pitch control 

DB 66,162,85 ;seq5, ir age! 

DB FFH ;end 

Tbl3_say353: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 19,85 ,-seq6, ir agel DANCE WAH 

DB FFH ;end 

Tbl3_say354: 

DB 46 ;speech speed 

DB Voice*8 ;system pitch setting 

DB 162,164.134,134 ;seq6, ir agel DO DO DO 

DB FFH ;end 

Tbl3_say355: 

DB 46 ;speech speed 

DB Voice*2 ;system pitch setting 

DB 134,134,25,19 ;seq7 ir agel 

DB FFH ;end 

Tbl3_say356: 

DB 50 ;speech speed 


A-240 




DB Voice*8 ;system pitch setting 

DB 162 

DB FFH ;end EMPTY SPACE 

Tbl3_say357: 

DB 42 ;speech speed 

DB Voice ;system pitch setting 

DB 102.97,118,34 ;seq8 ir agel 

DB FFH ;end 

Tbl3_say358: 

DB 50 !speech speed 

DB Voice ;system pitch setting 

DB 117,34,22 ;seq9 ir agel 

DB FFH ;end 

Tbl3_say359: 

DB 50 ;speech speed 

DB Voice .-system pitch setting 

DB 34,78,145,145 ;seql0,ll ir agel 

DB FFH ;end 

Tbl3_say360: 

DB 50 ;speech speed 

DB Voice ;system pitch setting 

DB 150,151,93.71 ;seql2 ir agel TWINKLE 

DB FFH ;end 

Tbl3_say361: 

DB 46 ;speech speed 

DB Voice ;system pitch setting 

DB 91,31,165,165,165.165.165.165,128,31 ;seql3,14 ir 

agel 

DB FFH ;end 

Tbl3_say362: 

DB 46 ;speech speed 

DB Voice ,-system pitch setting 

DB 161,72,161 ;seql5 ir agel 

DB FFH ;end 

Tbl3_say363 : 

DB 60 ;speech speed 

DB Voice ,-system pitch setting 

DB 144.144.144,144 ;seql6 ir agel 

DB FPH ;end 

Tbl3_say364: 

DB 46 ;speech speed 

DB Voice*5 ;system pitch setting 

DB 81,40 ;seql,2,3 ir age2 

DB FFH ;end 

Tbl3_say365: 

DB 46 ;speech speed 

DB Voice*8 ;system pitch setting 

DB 81,40 ;seq4,5 ir age2 

DB FFH ; end 

Tbl3_say366: 


A-241 



DB 46 ;speech speed 

DB Voice*8 ;system pitch setting 

DB 66,159 ;seq6 ir age2 

DB FFH ;end 

; 

Tbl3_say367: 

DB 46 ;speech speed 

DB Voice*7 ;system pitch setting 

DB 19,165,165,165,164.85,134,165,135 ,-seq7,8 ir 

age2 

DB FFH ;end 


Tbl3_say368: 


DB 

46 ;speech speed 


DB 

Voice*3 ;system pitch setting 

DB 

118,25,34 

;seq9 ir age2 

DB FFH 

; end 


Tbl3_say369: 



DB 

51 ;speech speed 


DB 

Voice*8 ;system pitch 

setting 

DB 

102,97,118 

;seql0 ir age2 

DB FFH 

; end 


Tbl3_say370: 



DB 

46 ;speech speed 


DB 

Voice*5 ;system pitch 

setting 

DB 

117,34,22 

;SEQ11 ir age2 

DB FFH 

;end 


Tbl3_say371: 



DB 

48 ;speech speed 


DB Voice ;system pitch setting 


DB 

91,31,165,165.165,165,165.165,124.31 ;seqi3,14 ir 

age2 



DB FFH 

;end 


Tbl3_say372: 



DB 

55 ,• speech cpeed 


DB Voice ;system pitch setting 


DB 

161,72,161 

,• seql5 ir age2 

DB FFH 

; end 


Tbl3_say373: 



DB 

50 ;speech speed 


DB Voice ;system pitch setting 


DB 

143,144,143 

;seql6 ir age2 

DB FFH 

; end 


Tbl3_say374: 



DB 

50 ;speech speed 


DB Voice ;pitch control 


DB 

14,40 ;seql,2,3,4,5 ir age3 

DB FFH 

.-end 


Tbl3_say375: 



DB 

46 {speech speed 


DB 

Voice*5 .-system pitch setting 

DB 

35,48,66 jseq6 ir age3 

DB FFH 

; end 



A-242 



Tbl3_say376: 


DB 


50 ; 

speech speed 

DB 


Voice*8 

;pitch control 

DB 


19,12,134 

,134 :seq7,8 ir age3 

DB 

FFH 

; end 


Tbl3_say377: 

DB 


46 ; 

speech speed 

DB 


Voice*3 

;system pitch setting 

DB 


34,85,99 

;SEQ9 ir age3 

DB 

FFH 

; end 


Tbl3_say378 

DB 


46 

speech speed 

DB 


Voice*2 

;system pitch setting 

DB 


156,25,34 

;seqll ir age3 

DB 

FFH 

; end 


Tbl3_say379 

DB 


50 

speech speed 

DB 


Voice*3 

;system pitch setting 

DB 


63.165,165,165.165.165,124,31 


DB FFH ;end 


Tbl3_say380: 

DB 70 ;speech speed 

DB Voice*4 ;system pitch setting 

DB 35,72,162,162,162,162.162,162.162,i62,162,162,161 

DB FFH ;end 


Tbl3_say381: 

DB 58 ;speech speed 

DB Voice*5 ; system pitch setting 

DB 40,85 ;SEQ1,2,3,4,5 IR AGE4 

DB FFH ;end 

Tbl3_say382: 

DB 46 ;speech speed 

DB Voice*6 .-system pitch setting 

DB 81,66,21 ;seq6 ir age4 

DB FFH ;end 

; 

Tbl3_say383: 

DB 46 {speech speed 

DB Voice*7 ;system pitch setting 

DB 134,134,25,19 ;seq7,8 ir age4 

DB FFH ;end 

I 

Tb’4_say384: 

DB 50 jspeech speed 

DB Voice*8 ,-system pitch setting 

DB 34,78,145,145 ;seq9 ir age4 

DB FFH ;end 

; 

Tbl4_say385: 

DB 50 ispeech speed 

DB Voice*8 ;system pitch setting 

DB 119,44,52,71,150 seqlO ir age4 

DB FFH ;end SAY NUMBERS MODIFIED TO MATCH CORRECT 


A-243 



DIALOGUE 


Tbl4_say386: 

DB 46 ;speech speed 

DB Voice+8 ;system pitch setting 

DB 34,85,99 seqll ir age4 

DB FFH i end 

Tbl4_say387 : 

DB 50 ;speech speed 

DB Voice*l ;system pitch setting 

DB 119,124,31 ;seql2 ir ago4 

DB FFH ;end 

Tbl4_say388: 

DB 56 .-speech speed 

DB Voice*3 ;system pitch setting 

DB 162,63 ;seql4 ir age4 

DB FFH ; end 

Tbl4_say389: 

DB 60 ;speech speed 

DB Voice-8 ;system pitch setting 

DB 161,164,161 ;SEQ10 HANGING (YAWN) 

; DB 46 ;speech speed 

; DB Voice*3 ;system pitch setting 

; DB 161.144,144 ;seqlS ir age4 

DB FFH ; end 

;Tbll_say41 
; DB 

; DB 

; DB 

; DB 

;Tbll_say42: 


DB 

46 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

4 


DB 

FFH 

; end 


Tbl4_say390: 

DB 55 ;speech speed 

DB Voice*3 ;system pitch setting 

DB 165,165,144,165,144,165,144,165,144 

DB FFH jend 
; END IR 
;END GEORGE 

; ADDED BY DMH (FOR FURBY SAYS) 

Tbl4_say391: 


DB 

46 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

42 

; LIGHT (FURBY SAYS) 

DB 

FFH 

;end 


; ADDED BY DMH (FOR FURBY SAYS) 


46 ;speech speed 

Voice*4 ;system pitch setting 
143,144,143 ;seql6 ir age4 
FFH ;end 


A-244 





Tbl4_say392: 


DB 

52 

;speech speed 

DB 

Voice ;system pitch setting 

DB 

60,42 

;no light 

DB 

FFH 

; end 

Tbl4_say393 



DB 

55 

;speech speed 

DB 

Voice ;system pitch setting 

DB 

164,163 

46 ; LOUD SOUND 

DB 

FFH ;end 


Tblfl_say394 


; DMH 

DB 

46 

;speech speed 

DB 

Voice 

•system pitch setting 

DB 

164,163 

44 ; LISTEN (FURBY 

DB 

FFH 

;end 

1 

Tbl4_say395 



DB 

46 

• speech speed 

DB 

Voice 

;system pitch setting 

DB 

52,163 

;(MEI with names (dmh) 

DB 

FFH 

; end 

Tbl4_say396 



DB 

56 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

162,55 

;name IMEE MEE) (dmh) 

DB 

FFH ; end 


Tbl4_say397 



DB 

58 

;speech speed 

DB 

Voice 

;system pitch setting 

DB 

163,23 

;(DO MOH) 

DB 

FFH ;end 


Tbl4_say398 



DB 

60 

;speech speed 

DB 

Voice 

.•system pitch setting 

DB 

80 

; TOH-LOC 

DB 

FFH ;end 


1 

Tbl4_say399 



DB 

60 

;speech speed 

DB 

Voice 

.•system pitch setting 

DB 

165 

; DELAY 1 SECOND DMH 

DB 

FFH ;end 


l 

! start of 

diagnostic tables dmh 

Tbl4_aay400 



DB 

0 

;speech speed 


DB 

DB 


DB 


FFH 


Voice.16 
168.168.168 
;end 


;system pitch setting 
; used at start of diagnostics 


Tbl4_say401: 


DB 

20 

.■speech speed 

DB 

Voice-. 13 

,- system pitch setting 

DB 

169.165 

;key beep 


A-245 





DB 

DB 


1 

FFH ;end 


Tbl4_say402: 


DB 

20 

;speech speed 

DB 

Voice+5 

;system pitch setting 

DB 

169,163,169,163,169 

,-pass test 

; DB 

2 


DB 

FFH ;end 


Tbl4_say403: 



DB 

96 

;speech speed 

DS 

Voice-40 

.■system pitch setting 

DB 

169,163 

;fail test tone 

DB 

FFH ;end 


Tbl4_say404 



DB 

46 

;speech speed 

DB 

Voice 

.•system pitch setting 

DB 

169 

.■speaker tone test 

DB 

FFH 

; end 

Tbl4_say405 



DB 

46 ;speech speed 


DB Voice ;system pitch setting 

DB 163 ; no sound for start of motor cal 

DB FFH ;end 

Tbl4_say406: 

DB 20 ;speech speed 


DB 

Voice*5 

;system pitch setting 

DB 

169,163,169,163,169 

;feedl 

DB 

FFH ;end 



Tbl4_say407: 

DB 20 ;speech speed 

DB Voice-»5 ; system pitch setting 

DB 169.163.169,163,169 .pass feed sw 

DB FFH ;end 

Tbl4_say408: 

DB 20 ;speech speed 

DB Voice-»5 ;system pitch setting 

DB 169,163,169,163,169 ,-pass light test 

DB FFH ;end 

Tbl4_say409: 

DB 20 ;speech speed 

DB Voice«5 ;system pitch setting 

DD 169,163,169,163,169 .-pass sound test 

DB FFH ;end 

Tbl4_say410: 


DB 

20 ;speech 

speed 

DB 

Voice»5 ;system 

pitch setting 

DB 

169,163,169,163,169 

;pass all test complete 

DB 

159 


DB 

FFH ;end 



Tbl4_say411: 


A-246 



DB 60 ;speech speed ; HIDE ME (HIDE AND SEEK) DHM 

DB Voice*-3 .-system pitch setting 

DB 31,52 ; HIDE ME 

DB FFH ;end 

Tbl4_say412: 

DB 100 ;speech speed 

DB Voice .-system pitch setting 

DB 167,167,167 ;SEQ1 FEED AGE1 (AAAA''I 

DB FFH ;end 

Tbl4_say413: 

Tbl4_say414: 

Tbl4_say415: 

Tbl4_say416: 

Tbl4_say417: 

Tbl4_say418: 

Tbl4_say419: 

Tbl4_say420: 

Tbl4_say421: 

Tbl4_say422: 

Tbl4_say423: 

Tbl4_say424: 

Tbl4_say425: 

Tbl4_say426: 

Tbl4_say427: 

Tbl4_say428: 

Tbl4_say429: 

Tt»4. iay430: 

Tbl4_say431: 

; 

Tbl4_say432: 

; 

Tbl4_say433: 

I 

Tbl4_say434: 

Tbl4_say435: 

Tbl4_say436: 

Tbl4_say437i 


A-247 



Tbl4_say438 

1 

Tbl4_say439 

; 

Tbl4_say440 

Tbl4_say441 

Tbl4_say442 

Tbl4_say443 

Tbl4_say444 

Tbl4_say445 

Tbl4_say446 

Tbl4_say447 

Tbl4_say448 

Tbl4_say449 

Tbl4_say450 

Tbl4_say451 

Tbl4_say452 

Tbi4_soy453 

Tbl4_say454 

Tbl4_say455 

Tbl4_say456 

Tbl4_say457 

Tbl4_aay458 

Tbl4_say459 

Tbl4_say460 

Tbl4_say461 

Tbl4_say462 

Tbl4_Bay463 

Tbl4_say464 

Tbl4_say465 

J 

Tbl4_say466 

Tbl4_say467 


A-248 




Tbl4_say468: 

; 

Tbl4_say469: 

; 

Tbl4_aay470: 
i 

Tbl4_say471: 
Tbl4_*ay472s 
Tbl4_»ay473 

Tbl4_»ay474 

I 

Tbl4_»ay475 

I 

Tbl4_»ay476 

Tbl4_say477 

: 

Tbl4_say478 

Tbl4_aay479 

Tbl4_say480 

Tbl4_say481 

Tbl4_say482 

Tbl4_say483 

Tbl4_say484 

Tbl4_say485 

Tbl4_say486 

; 

Tbl4_say487 

I 

TbX4_»ay488 

; 

Tbl4_»ay489 

i 

Tbl4_»ay490 

; 

Tbl4_«ay491 

I 

Tbl4_«ay492 

; 

Tbl4_»ay493 

I 

Tbl4_say494 

Tbl4_aay495: 

1 

Tbl4_Bay496: 

; 

Tbl4_say497: 




Tbl4_aay498: 

Tbl4_aay499: 

; 

Tbl4_aay500: 

Tbl4_aay501: 

I 

Tbl4_aay502: 

Tbl4_aay503: 

Tbl4_say504: 

Tbl4_say505: 

Tbl4_aay506: 

Tbl4_say507: 

Tbl4_say508: 

Tbl4_say509: 

Tfcl4_say510: 

Tbl4_say511: 

; ON POWER UP. UNTIL WAKE-UP TABLE INSTALLED (Dave) 
DB 46 ;speech speed 

DB Voice 

DB 165 

DB FFH ;end 


; Motor tables 
; Offsett pointer 
Motor_grpl: 


DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 


Tbll_M001.Tbll M002,Tbl1_M003,Tbl1_M004,Tbl1_M005 
Tbll_M006,Tbll MOOT.Tbll_M008,Tbll_M009.Tbll_M010 
Tbll_M011,Tbll_M012,Tbll_M013.Tbl1_M014,Tbll_M015 
Tbll_M016.Tbll_M017,Tbll_M018.Tbll_M019,Tbll_M020 
Tbl1_M021.Tbl1_M022.Tbl1_M023,Tbll_M024,Tbll_M025 
Tbll M026,Tbll M027,Tbl1_M028.Tbl1_M029.Tbll_M030 
Tbl1 _ M0 31.Tbl1_M0 3 2,Tbl1_M0 3 3,Tbl1_M0 34.Tbl1_M0 3 5 
Tbll_M036,Tbll_M037,Tbll_M03B.Tbl1_M039.Tbll_M040 
Tbll_M041.Tbll_M042.Tbll_M043,Tbll_M044.Tbli_M045 
Tbll_M046,Tbll_M047.Tbll_M048.Tb 1 1_M049,Tbll_M050 
Tbll M051.Tbll_M052,Tbll_M053,Tbll_M054.Tbl1_M05L 
TblllM056.Tbll_M057.Tbl1_M058,Tbll_M059,Tbll_K060 


A-250 








DW 

EM 

EM 

EM 

EM 

EM 

EM 

EM 

EM 

EM 

EM 

EM 

EM 

DW 

; 

Motor_grp2: 

EM 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 

DW 


Tbll_M061,TbU_M062.TbU_K063.Tbll_H064,Toll_M065 
Tbl1_K066,Tbl1_M067,Tbli_M068,Tbll_M069,Tbll_M070 
Tbll_K071 Tbll_M072,Tbll_M073,Tbll_M074,Tbll_M075 
Tbl 1_M076, TbU_J4077 , Tbll_H078, Tbll_M079. Tbll„M080 
Tbll_M081,Tbll_M082,Tbll_M083.Tbll_M084.Tbll_M085 
Tbll_M086,Tbll M087,Tb: _M088,Tbll_MOE>,Tbll_M090 
Tbll M091,Tbll_M092,Tbll_M093,Tbll_M094,Tbll_M095 
TblllM096,TbllJ1097,Tbll_M098.Tbll_J4099 

Tbll_M100,Tbll_M101.Tbll_M102,TbU_M103,Tbll_M104 
Tbl 1_M105, Tbl 1_M106. Tbll_M107, Tbll_*108, Tbl 1_M109 
Tbll_miO,Tbll_mU.Tbll_M112.Tbll_X113.Tbll_M114 

Tbll_M115,Tbll_M116,Tbll_M117,Tbll_M118.Tbll_M119 

Tbll_M120,Tbl1_M121,Tbll_M122,Tbll_M123,Tbll_M124 
Tbll_M125,'oll_M126,Tbll_M127 


Tbl2_M128 

Tbl2_M129, 

Tbl2_M134, 

Tbl2_M139. 

Tbl2_M144, 

Tbl2_M149, 

Tbl2_M154. 

Tbl2_M159, 

Tbl2_M164. 

Tfc M169, 

Tbl-_H174, 

Tbl2_M179, 

Tbl2_M184, 

TbI2_.M189, 

Tbl2_M194. 

Tbl2_M199, 

Tbl2_M204, 

Tbl2_H209. 

Tbl2_K214 

Tbl2_M219 

Tbl2_M224 

Tbl2_M229 

Tbl2_M234 

Tbl2_M239 

Tbl2_M244 

Tbl2_M249 

Tbl2_H254 


Tbl2_M130, 
Tbl2_M135, 
Tbl2_M140, 
Tbl2_M145, 
Tbl2_M150. 
Tbl2_K155, 
Tbl2_M160, 
Tbl2_M165, 
Tbl2_M170, 
Tbl2_M175, 
Tbl2_H180. 
,Tbl2_H185. 
, Tbl2_M190, 
, Tbl2_H195, 
, Tbl2_M200, 
, Tbl2_M205, 
,Tbl2_K210, 
,Tbl2_M215, 
, Tbl2_M220 
,Tbl2_M225 
, Tbl2_M230 
, Tbl2_M2 3 5 
,Tbl2_M240 
, Tbl2_M245 
,Tbl2_M250 
,Tbl2_M255 


Tbl2_K131. 
Tbl2_K136, 
Tbl2_M141, 
Tbl2_H146, 
Tbl2_M151, 
Tbl2_M156, 
Tbl2_M161, 
Tbl2_M166. 
Tbl2_M171, 
Tbl2_K176. 
Tbl2_M181, 
Tbl2_H186, 
Tbl2_M191 

Tbl2_H196 
Tbl2_M201 
Tbl2_M206 
Tbl2_H211 
Tbl2_H216 
Tbl2_M221 
,Tbl2_M226 
, Tbl2_M2 31 
,Tbl2_M236 
,Tbl2_H241 
,Tbl2_M246 
,Tbl2_M251 


Tbl2_M132, 
Tbl2_M137, 
Tbl2_H142, 
Tbl2_M147, 
Tbl2_M152, 
Tb’2_M157, 
Tbl2_M162. 
,T1-12_M167 
, Tbl2_M172 
. Tbl2_M177 
, Tbl2_M182 
, Tbl2_H187 
, Tbl2_M192 
, Tbl2_M197 
, Tbl2_M202 
, Tbl2_H207 
, Tbl2_M212 
,Tbl2_K217 
, Tbl2_M222 
,Tbl2_M227 
,Tbl2_M232 
,Tbl2_M237 
,Tbl2_M242 
,Tbl2_M247 
,Tbl2_M252 


"bl2_K133 
Tbl2_M138 
Tbl2_M143 
Tbl2_M148 
Tbl2_M153 
Tbl2_M158 
Tbl2_Ml63 
Tbl2_H168 
, Tbl2_K173 
,Tbl2_M178 
,Tbl2_M183 
, Tbl2_M188 
,Tbl2_l.*93 
,Tbl2_H198 
,Tbl2_K203 
, Tbl2_M20’8 
,Tbl2_M213 
.Tbl2_M21B 
,Tbl2_*223 
,Tbl-_M228 
.Tbl2_M2‘»3 
,Tbl2_M2- 
,Tbl2_M243 
,Tbl2_M248 
,Tbl2_M253 


; 

Motor_grp3: 


EM 

DW 

DW 

DW 

DW 

DW 

EM 

DW 

DW 

DW 

DW 

DW 


Tbl j_M 256 
Tbl3_M257, 
Tbl3_M262, 
Tbl3_M267, 
Tbl3_M272. 
Tbl3_M277, 
Tbl3_H282, 
Tbl3_M287, 
Tbl3_M292, 
Tbl3_M297, 
Tb.l3_K302, 
Tbl3_M307, 


Tbl3„K2S8. 

Tbl3_M263 

Tbl3_M268 

Tbl3_M273 

Tbl3_H278 

Tbl3_M233 

Tbl3_M288 

Tbl3_M293 

Tbl3_M298 

Tbl3_M303 

Tbl3_M308 


, Tbl3_M259 
, Tbl3_M264 
,Tbl3_M269 
, Tbl3_K274 
, Tbl3_M279 
, Tbl3_M284 
, Tbl3_M289 
.Tbl3_H294 
, Tbl3_M299 
,Tbl3_M304 
, Tbl3_M309 


Tbl3_M260 
Tbl3_M265 
Tbl3_H270 
Tbl3_M275 
Tbl3_M280 
7-)13_M285 
,Tbl3_M290 
,Tbl3_M295 
, Tbl3_M300 
, Tbl3_M305 
, Tbl3_M310 


, Tbl3_M261 
, Tbl3_M266 
, Tbl3_M271 
, Tbl3_M276 
, Tbl3_M281 
,Tbl3_M286 
,Tbl3_M291 
,Tbl3_M296 
, Tbl3_H301 
, Tbl3_M306 
,Tbl3_M311 


A-251 



DW Tbl3_M312,Tbl3_M313,Tbl3_M314,Tbl3_M315.Tbl3_M316 
DW Tbl3_M317,Tbl3_M318,Tbl3_M319. Tbl3_M320,Tbl3_M321 
DW Tbl3_M322,Tbl3_M323.Tbl3_H324,Tbl3_M325,Tbl3_M326 
DW Tbl3_M327,Tbl3_M328.Tbl3_«329. Tbl3_M330,Tbl3_M331 
DW Tbl3_M332,Tbl3_M333.Tbl3_M334,Tbl3_M335,Tbl3_M336 
DW Tbl3_M337,Tbl3_M338,Tbl3_M339,Tbl3_M340,Tbl3_M341 
DW Tbl3_M342.Tbl3_K343,Tbl3_M344,Tbl3_M345.Tbl3_M346 
DW Tbl3_M347,Tbl3_M348,Tbl3_M349.Tbl3_M350.Tbl3_M351 
DW Tbl3_M352 ,Tbl3_J4353,Tbl3_M354,Tbl3_M355,Tbl3_M356 
DW Tbl3_M3 57,Tbl3_M3 5 8,Tbl3_M 3 S 9.Tbl3_K3 6 0,Tbl3 J<3 61 
DW Tbl3_M362.Tbl3_M363.Tbl3_M364,Tbl3_M365,Tbl3_M366 
DW Tbl3_M367,Tbl3_M368.Tbl3_M369.Tbl3_M370,Tbl3_M371 
DW Tbl3_M372,Tbl3_M373,Tbl3_M374,Tbl3_M375,Tbl3_M376 
DW Tbl3_M377,Tbl3_M378,Tbl3_H379,Tbl3_M380,Tbl3_M381 
DW Tbl3_M382,Tbl3_H383 


Motor_grp4: 

DW Tbl4_M384 

DW Tbl4_>1385, Tbl4_M386, Tbl4_M387 , Tbl4_M388, Tbl4_M389 
DW Tbl4_M390.Tbl4_M391.Tbl4_M392,Tbl4_M393,Tbl4_M394 
DW Tbl4_M395,Tbl4_M396.Tbl4_H397.Tbl4_M398.Tbl4_M399 
DW Tbl4_M400,Tbl4_M401.Tbl4_M402,Tbl4_H403,Tbl4_M404 
DW Tbl4_M405,Tbl4_M406.Tbl4_M407,Tbl4_M408,Tbl4_M409 
DW Tbl4_M410,Tbl4_M411,Tbl4_M412.Tbl4_M413,Tbl4_M414 
DW Tbl4_K415,Tbl4_M416.Tbl4_M417.Tbl4_M418,Tbl4_M419 

DW Tbl4_K420,Tbl4_M421.Tbl4_M422,Tbl4_M423.Tbi4_M424 

DW Tbl4_K425,Tbl4_H426.Tbl4_H427,Tbl4_M428 Tbl4_M429 

DW Tbl4_M430,Tbl4_M431.Tbl4_M432,Tbl4_M433,Tbl4_M434 

DW Tbl4_M435,Tbl4_M436,Tbl4_M437,Tbl4_M438,Tbl4_M439 

DW Tbl4_M440,Tbl4_K441,Tbl4_M442,Tbl4_M443,Tbl4_M444 

DW Tbl4_M445,Tbl4_M446.Tbl4_M447,Tbl4_M448.Tbl4_M449 

DW Tbl4_M450, Tbl4_K151, Tbl4_M452, Tbl4_M453, Tbl4_M45.4 

DW Tbl4_H455,Tbl4_M456,Tbl4_M457,Tbl4_M458,Tbl4_M459 

D/1 Tbl4_M460.Tbl4_H461,Tbl4_M462.Tbl4_M463,Tbl4_M464 

DW Tbl4_M465.Tbl4 M466,Tbl4_M467,Tbl4_M468.Tbl4_H469 

DW Tbl4_H470,Tbl4_M471,Tbl4_M472.Tbl4_H473,Tbl4_K474 

DW Tbl4_M475,Tbl4_M476,Tbl4_M477.Tbl4_M478.Tbl4_M479 

DW Tbl4_M480.Tbl4_M481.Tbl4_M482.Tbl4_M483.Tbl4_M484 

DW Tbl4_H435,Tbl4_M486,Tbl4_M487,Tbl4_M488,Tbl4_H489 

DW Tbl4_M490,Tbl4_M491.Tbl4_M492.Tbl4_M493.Tbl4_M494 

DW Tbl4_H495, Tbl4_M496, Tbl4_H497 , Tbl4__M498, Tbl4_M499 

DW Tbl4_M500,Tbl4_M501.Tbl4_M502.Tbl4_M503,Tbl4_M504 

DW Tbl4_M505.Tbl4 J4506.Tbl4_M507,Tbl4_M508.Tbl4_M509 

DW Tbl4_M510,Tbl4_M511 


! 

. « 
; ’ 


; Each motor table has the following format: 

; The first line is the delay between motor steps. 

; The next group of lines are the motor steps. 

; The last line is the terminator consnand. 

; Delay table - a number from 0 - 255. THe entry is multiplied by 
1 a 2.9 mSec timer. Therefore l=2.9mSec 2=5.8msec 255=739mSec. 

; The motor step is entered as a decimal number of 10-190. 

; '00' is a PAUSE command base on the motor delay setting. 






; 'FF' or '255' is the end of table coamand. 

•TABLES WITH ENDING STEP NOT WITHIN REQUIRED RANGE(10-20),(132.136) 

jM94,M127,M131,M139,M140,M143,M146 

•WITH DUPLICATE STEPS PUT CONSECUTIVELY 

!m187,M193,M219.M220,M229,M237,M241,M242 
;M250,M310,M321,M369 

Tbll_M000: 

DB 50 jmotor delay between steps 

DB 10,135 

DB FFH ; end 


jGEORGE 07/03/96 


Tbll_H001: 

DB 

DB 

DB 

jdON START SEQ1 AGE1 

1 jmotor delay between steps 

190,133 

FFH 

Tbll_M002: 

DB 

DB 

DB 

;dON START SEQ2 AGE1 

1 jmotor delay between steps 

150,145,138,120,145.133,147,133 

FFH ;end 

Tbl1_M003: 

DB 

DB 

SEQ3 AGE1 
j DB 

DB 

10 jmotor delay between steps 

90,100,0,0,0,100,0,0,0,0,133 jCONNECTED M23 ;dON START 

145,160,0,0,0,160 

FFH jend 

Tbll_M004: 

DB 

DB 

SEQ3 AGE1 

DB 

1 jmotor delay between steps 

200,190,160,100,133 jCONNECTED M22 jaON START 

FFH ; end 

Tbll_M00S: 

DB 

DB 

DB 

5 jmotor delay between steps 

170,130,90,100,133 j DONE conected m22 seq4 agel 

FFH j end 

Tbll_M006: 

DB 

DB 

DB 

10 jmotor delay between steps 

150.200,0,0,150,133 jseq5 frontl agel 

FFH ;end 

Tbll_M007: 

DB 

DB 

DB 

1 jmotor delay between steps 

120,150,133 jSEQ6 FRONT1 AGE1 HORSE LAUGH 

FFH jend 

Tbll_M008: 

DB 

DB 

10 jmotor delay between steps 

150,200.150,170,133 ,-SEQ7 FRONT AGE1 





DB FFH ; end 

; 

Tbll_M009: 

DB 10 .-motor delay between steps 

DB 150,200.150,190,170,120,133 ;SEQ8,FRONT AOE1 

DB FFH ;end 

Tbll_M010: 

DB 1 .-motor delay between steps 

DB 180,100,133 ;SEQ9,FRONT AGE1 

DB FFH ;end 

Tbll_M011: 

DB 1 ,-motor delay between steps 

DB 80,0,1^0,0,125,0,0,133 ;SEQ10,FRONT AGE1 

DB FFH ; end 

Tbll_M012: 

DB 10 .-motor delay between steps 

DB 125,0,0,0,0.0,0,0,0,133.80,133 ;SEQ11,FRONT AGE1 

DB FFH ; end 

Tbll_M013: 

DB 20 ,-motor delay between steps 

DB 145.133.145,133,145,133,145 

DB 125,0.0,0,0,0,130,0.0,90,133 ;seql2 FRONT AGE1 ADD 

SAY20 TO FRONT 

DB FFH ,- end 

Tbll_M014: 

DB 10 ,-motor delay between 

steps 

DB 90,130,120,0.0.133 ;seq!3 FRONT AGE1 ADD 

SAY 22 

DB FFH ;end 

Tbll_M015: 

DB 10 ;motor delay between 

steps 

DB 125.110.133 ;seql4 FRONT AGE1 ADD 

SAY22 

DB FFH ;end 

Tbll_M016: 

DB 1 ,-motor delay between steps 

DB 160,0,0,133,125,150,133 ;seql5 FRONT AGE1 

DB FFH ;end 

Tbll_M017: 

DB 10 ,-motor delay between steps 

DB 120,133,125,150,120,0,0,0.0,0,0.0,0,133 ,-seql6 FRONT 

AGE1 ADD 37 

DB FFH ;end 

Tbl1_M018: 

DB 1 ,-motor delay between steps 

DB 124.0,115,0,133,120,133 ;seql6 FRONT 

AGE1 ADD 37 

DB FFH ; end 


A-254 



Tbll_M019: 



DB 

10 

;motor delay between steps 

, DB 

90,100,0,0,0,100,0,0,0,0,133 ;SEQ1 FRONT AGE2 

DB 

175,160,0,0,u,160,0,0,0,0,133 

DB 

FFH ;end 


Tbll_M020: 



DB 

10 

,-motor delay between steps 

DB 

143,150,133,155,133 jSEQ2 fRONT AGE2 

DB 

FFH ;end 


1 

Tbll_M021: 



DB 

1 

,-motor delay between steps 

DB 

180,133,180,133 


: DB 

100,70,10,133 

;SEQ3AGE2 FRONT ADD SEQ9AGE1 

DB 

FFH ;end 


Tbll_M022: 



DB 

10 

,-motor delay between steps 

DB 

140,150,133 

;SEQ4 AGE2 FRONT 

DB 

FFH ;end 


Tbll_M023: 



DB 

1 

;motor delay between steps 

DB 

120,133,0,0,0,0 

,0,0,0,140,150.133 ;SEQ4 AGE2 

DB 

FFH ;end 


Tbll_M024: 



DB 

5 

,-motor delay between steps 

; 


;SEQ5 AGE2 FRONT 

DB 

150,140,138,120.145.133,0.147,133 

DB 

FFH ; end 


Tbll_M025: 



DB 

1 

,-motor delay between steps 

DB 

150,200,0,0,150 

,133.143,133,143 

DB 

133,110,133 

;SEQ6 AGE2 FRONT 

DB 

FFH ,-end 


Tbll_M026: 



DB 

10 

;motor delay between steps 

DB 

142,150,133 

;SEQ 7 AGE2 FRONT PARTI 

DB 

FFH ;end 


i 

Tbll_J!027: 



DB 

1 

,-motor delay between steps 


jSEQ 7 

AGE2 FRONT PART2 

DB 

150,145,160,133.145,133,145,133 

DB 

FFH ;end 


; danger always 

followed by 003 

1: dmh 

Tbll_M028: 



DB 

1 

;motor delay between steps 

DB 

30,70 ,-<- OK 

;SEQ8 MIDDLE OF 22,AND 4SOMETHING 

DB 

FFH ;end 

1 

Tbll_M029: 



DB 

1 

,-motor delay between steps 

DB 

190,133 

;SEQ 9 TITTER 

DB 

FFH ;end 




A-255 



I 


Tbll_M030: 



DB 

1 

;motor delay between steps 

DB 

120,133,140,150. 

,133 ; SEQ10 FRONT AGE2 

DB 

FFH ;end 


Tbll_M031: 



DB 

5 

;motor delay between steps 

DB 

180,160,133,115 

,105,133 ;SEQ11 FRONT 

AGE 2 ADD 41 



DB 

FFH ;end 


Tbll_M032: 



DB 

10 

;motor delay between steps 

DB 

145,133,145,133,145,133,0,120,115,133 

DB 

FFH 

;SEQ12 FRONT AGE 2 ADD 20 

Tbll_M033i 



DB 

1 

;motor delay between steps 

DB 

150,170,190,133 

,120,133,135,133.150,0,0,133 ;SEQ14 

FRONT 



DB 

FFH ;end 


Tbll_M034: 



DB 

10 

.•motor delay between steps 

DB 

125,0,0,0,0,0,133,145,133 ;SEQ15 FRONT AGE2 ADD 20 

DB 

FFH ;end 


Tbll_M035: 



DB 

1 

.-motor delay between steps 

DB 

120,0,0,0,0,0,0 

.0,133,145 

DB 

133,0,150,133,110,133,120.0,0,133 [SEQ16 FRONT AGE2 

ADD 20 



DB 

FFH ;end 


Tbll_M036: 



DB 

1 

.•motor delay between steps 

DB 

155,0,0,0.133 

[SEQ1 FRONT AGE3 

DB 

FFH ;end 


Tbl1_M037: 



DB 

1 

[motor delay between steps 

DB 

140.150,133,120,133,110.133 [SEQ2 FRONT AGE3 

DB 

FFH ;end 


Tbll_M038: 



DB 

1 

.•motor delay between steps 

DB 

155,0,0,0,133,155,0,0,0,133 ;SEQ3 FRONT AGE3 

DB 

FFH s end 


Tbll_M039: 



DB 

1 

,-motor delay between steps 

DB 

190,0,0,133 

[SEQ4 FRONT AGE3 

DB 

FFH iend 


; ERROR 



;Tbll_M040: 



1 DB 

10 

[motor delay between steps 

; DB 

140,150,133 

ISEQ5 FRONT AGE3 ADD 

SEQ14AGE1 



; DB 

FFH ;end 



A-2S6 



; 

Tbll_M040: 

DB 

DB 

DB 

DB 

10 ,-motor delay between steps 

150,200,0,0,150,133,143,133 

143,133.110.0,0,133 ;SEQ6 FRONT AGE3 

FFH ;end 


Tbll_M041: 

DB 

DB 

DB 

DB 

1 ;motor delay between steps 

160,140,0,150,133,160,140,133 

150,160,133 ;SEQ7 FRONT AGE3 

FFH ;end 


Tbll_M042: 

DB 

DB 

; DB 

DB 

1 ,-motor delay between steps 

30,70,120 ;SEQ? 

160,140,0,150,133,160,140.133 

FFH ;end 


J 

TblX_M043: 

DB 

DB 

DB 

10 ;motor delay between steps 

80,0,150,0.125,0,0.133 ;SEQ10 FRONT 

FFH ;end 

AGE3 

Tbll_M044: 

DB 

DB 

DB 

1 ,-motor delay between steps 

100,133,120,133 ,-SEQll 

FFH ; end 


Tbl1_M045: 

DB 10 ,-motor delay between steps 

DB 150,0,0,133,120.100,133 ;SEQ12 FRONT AGE3 

(HEEY,TICKLE HE) ADD20 DB 4 

DB FFH .-end 

Tbll_M046: 

DB 

DB 

(NANNY,NANNY1 
DB 

10 ,-motor delay between steps 

145,133,145,133,145,133 .-SEQ13 £RONT 

ADD20 

FFH ,- end 

AGE3 

Tbll_M047: 

DB 

DB 

HE HE ) ADD20 
DB 

1 ,-motor delay between steps 

125,0,130,0.0,90.133 .-SEQ13 fRONT AGE3 (RASBERKY, HE 

FFH ;end 

Tbll_M043: 

DB 

DB 

DB 

1 ,-motor delay between steps 

200,0.0,133 ;SEQ16 FRONT AGE3 

FFH ;end 


Tbll_M049: 

DB 

DB 

DB 

1 ,-motor delay between steps 

120.110,133,115,133 ;SEQ16 

FFH ;end 


Tbll_M050: 

DB 

DB 

10 ,-motor delay between steps 

140,150,133 ,- SEQ2 (TICKLE) FRONT AGE4 




DB 

FFH 

; end 


Tbll_M051: 

DB 

DB 

DB 

10 

125.100,133 

FFH ;end 

,-motor delay between steps 

; SEQ2 (AGAIN) FRONT AGE4 

Tbll_M052: 

DB 

DB 

DB 

1 

120,133 

FFH 

,- end 

,-motor delay between steps 
;SEQ3 (YOU) FRONT AGE4 

) 

Tbll_M053: 

DB 

DB 

DB 

10 

160,133 

FFH 

,- end 

,-motor delay between steps 
;SEQ3 (ME) FRONT AGE4 

Tbll_M054: 

DB 

DB 

DB 

20 

150,133 

FFH 

,- end 

,-motor delay between steps 
;SEQ4 (LOVE) FRONT AGE4 ADD45 74 71 20 

Tbl1_M055: 

DB 

DB 

ADD26 

DB 

10 

135,133,150 n, 

FFH ;end 

.-motor delay between steps 

0.133 ;SEQ5 (HE HE HE) FRONT AGE4 

Tbll_M056: 

DB 

DB 

AGE4 ADD26 

DB 

10 

154,133, 

FFH 

115.0. 

; end 

.-motor delay between steps 

0.0,0.0,0.133 ;SEQ5 (BIG FUN! FRONT 

Tbl1_H057: 

DB 

DB 

DB 

10 

120,133 

FFH 

; end 

,-motor delay between steps 
;SEQ8 (NO) FRONT AGE4 

Tbll_M058: 

DB 

DB 

DB 

1 

100,133 

FFH 

; end 

,-motor delay between steps 

,-SEQ8 (FLEASE) FRONT AGE4 

Tbl1_M059: 

DB 

DB 

DB 

10 

150,0,0,0,133 
FFH ;end 

,-motor delay between steps 
.-SEQ9 (HEEY) FRONT AGE4 ADD71 

Tbll_M060: 

DB 

DB 

DB 

1 

120.100,133 
FFH ;end 

,-motor delay between steps 
;SEQ14 (PARTY) AGE4 ADD45 


Tbll_M061i 

DB 10 .-motor delay between steps 

DB 143,150,170.133 ;SEQ15 (WA WA WA) FRONT AGE4 ADD22 

DB FFH ; end 

,-END GEORGE 07/03/98 


- 4-258 



; (BOTTOM) 

;GEORGE 07/04/98 


Tbll_M062: 

DB 


20 

.•motor delay between steps 

DB 


150,0,0,0,133 

.•FORTUNE ASK 

DB 

FFH 

,-end 


Tbll_M063: 

DB 


1 

,-motor delay between steps 

DB 


150,0,0,133 

.•FORTUNE ASK 

DB 

FFH 

;end 


Tbl1_M064: 

DB 


1 

.•motor delay between steps 

DB 


150,0,0,0,133 

.•FORTUNE TELL (BIG) 

DB 

FFH 

; end 


Tbll_M065: 

DB 


10 

.•motor . between steps 

DB 


190,150,0,0,133 

; FORTUI . - (VERY. BIG) 

DB 

FFH 

;end 


Tbl1_M066: 

DB 


1 

,-motor delay between steps 

DB 


120.0,0.0.0,0.0,0,0,133 

.-FORTUNE TELL (SEE! 

DB 

FFH 

;end 


; danger always 

followed by 68: dmh 


Tbl1_M067: 

DB 


10 

.•motor delay between steps 

DB 


30,10,30,10.30,10.70 

;<- OK ; FORTUNE WHINE STAI 

DB 

FFH 

; end 


Tbll_M068: 

DB 


1 

.•motor delay between steps 

DB 


100,133,150,133,150.133 

.-FORTUNE WHINE START 

DB 

FFH 

1 end 


Tbll_M069: 

DB 


1 

.-motor delay between steps 

DB 


150,133 

.-FORTUNE TELL (NO) 

DB 

FFH 

; end 


Tbl1 M070: 

DB 


1 

;motor delay between steps 

DB 


125,100,133 

.-FORTUNE TELL (WORRY) 

DB 

FFH 

rend 


Tbll_M071: 

DB 


10 

;motor delay between steps 

DB 


110,120,133 

.-FORTUNE (SOUND) 

DB 

FFH 

; end 


Tbll_M072: 

DB 


1 

;motor delay between steps 

DB 


150,133 

.-FORTUNE (GOOD) 

DB 

FFH 

,- end 




Tbll_M073: 

DB 1 

DB 150,0,133 

DB FFH ; end 

Tbll_M074: 

DB 1 

DB 145,133,150,0,0, 

DB FFH ; end 

Tbll_M075: 

DB 1 

DB 115,133 

DB FFH ;end 

Tbll_M076: 

DB 1 

DB 120,0,0,0,0,133 

DB FFH ;end 

Tbl1_M077: 

DB 1 

DB 150,115,133 

DB FFH ;end 

Tbl1_M07 8: 

DB 1 

DB 150,115,133 

DB FFH 


;motor delay between steps 
.•FORTUNE TELL (VERY) 


.•motor delay between steps 
,0,0,133 ;FORTUNE (WHOOPEE) 


;c.otor delay between steps 
.-FORTUNE (GOOD) 


.•motor delay between steps 
.•FORTUNE (RASPBERRY) 


.-motor delay between steps 
.-FORTUNE (OH OH) 


.-motor delay between steps 
.-FORTUNE (HAY BEE) 

end 


END GEORGE 07/04/98 
START HANGOUT 
GEORGE 07/04.98 


Tbll_M079: 

DB 

DB 

DUM DUM) AGE1 
DB 

Tbll_M080: 

DB 
DB 

AGE1 

DB 

Tbl1_M081: 

DB 
DB 
DB 
DB 

Tbll_M082: 

DB 

DB 

; DB 

DB 


150,133,135,150,133 
FFH ;end 


190,133 
; end 


FFH 


120,100,133 
120,100,133 
FFH ;end 


143,150,170,0,0,0,0 
120,100,160.133 
FFH ;end 


;motcr delay between steps 
;SEQ1 HANGING(DE DE DE ,DUM DUM 


.•motor delay between steps 
;SEQ1 HANGING(DUM DUM DUM DUM) 


;motor delay between steps 
,-SEOl HANGING (bEEDO) 


,-motor delay between steps 
190 ;-13 3 

,-SEQl HANGING (YA DA DA 1 


Tbll_M083: 

DB 


;mot -’lay between steps 


A-260 




; SEQ3 HANGING ( OMPAH bRUMH 


DB 190,120,133 

DB 150,133,150,133 

BABABUM) 

DB FFH ,-end 

Tbll_M084: 

DB 10 smotor delay between steps 

DB 125,120,125,115,133 jSE03 HANGING (bRUMM BABABUM) 

DB FFH ;end 

Tbll_M085: 

DB 1 ,-motor delay between steps 

DB 115,125,110, 25,100,133 ;SE04 HANGING (LA LA) 

DB FFH ,• end 

Tbll_M086: 

DB 1 jmotor delay between steps 

DB 120,130,115 ;SEQ4 HANGING (LA LA) 

DB 100,125,115.125,115,125,115,125,115,133 

DB FFH ;end 


Tbll_M087: 

DB 

DB 

LOH) 

DB FFH 

;Tbll_M088: 

; DB 

; DB 

LOH) 

; DB 


1 ,-motor delay between steps 

120,0,0,0,0.0,0,0,133 ;SEQ5 HANGING ,HUMM BO DAH WAY- 

; end 

10 ,-motor delay between steps 

115,133,139,155,160,133 ;SEQ5 HANGING (HUM!-) BC DAH KAY- 

FFH .-end 


Tbll_M088: 

DB 10 ,-motor delay between steps 

; DB 115.133,139.155,160,133 ; SEQ5 HANGING (HUMM BO DAH WAY 

LOH) 

DB 115,133,160,133 .-SEQ5 HANGING (HUMM BO DAH WAY-LOH) 


DB FFH ;end 

Tbll_M089: 

DB 60 

DB 190,170,150,133,0,0, 

DB FFH ,- end 

Tbll_M090: 

DB 10 

DB 150,133 

DB FFH ,- end 

Tbll_M091: 

DB 1 

DB 143,150,140,0.150,0, 

DB FFH ;end 

Tbll_M092 s 

DB 5 

DB 110,133 

DB FFH ;end 


;motor delay between steps 
,0,0,0 ;SEQ6 HANGING (SNORE) 


.-motor delay between steps 
;SEQ6 HANGING (SHOUT) 


,-motor delay between steps 
,133 ; SEQ6 HANGING (OK KAHI 


,-motor delay between steps 
,- SEQ6 HANGING (U-TYE) 


A-261 




Tbll_M093: 


DB 


60 

;motor delay between steps 

DB 


190,180,170,150,133 

;SEQ7 HANGING (SOFTER) 

DB FFH 

,- danger sleep 

; end 

Tbll_M094s 

DB 


50 

.-motor delay between steps 

DB 


190,170,150,10 

;SEQ7 HANGING (SOFTER) 

DB 

FFH 

,-end 

Tbll_M095: 

DB 


20 

,-motor delay between steps 

DB 


145,133,115,0.133 

.-SEQ8 HANGING ADD 76 

DB 

Tbll_M096: 

FFH 

; end 


DB 


1 

,-motor delay between steps 

DB 


150,115,150,133 

;SEQ9 HANGING (DO BE DOBE DO 

DB 

FFH 

;end 


Tbll_H097: 

DB 


46 

,-motor delay between steps 

DB 


170,0.0,0,200,150,0.0, 

150.0,133 ,-SEQ10 HANGING 

(YAWN) 

DB 

FFH 

; end 


Tbll_M098: 

DB 


25? 

,-motor delay between steps 

DB 


150,133 

;SEQ11 AND SEQ12 HANGING (SH 

DB 

Tbl1_M099: 

FFH 

;end 


DB 


1 

,-motor delay between steps 

DB 


144,133 

.-SEQ13 SEQ14 HANGING (HA) 

DB 

FFH 

; end 


Tbl1_M100: 

DB 

DB 


10 

104,0,0,0,133 

,-motor delay between steps 

DB 

FFH 

; end 


Tbll_K101: 

DB 


20 

.-motor delay between steps 

DB 


100,133,0,0,0.100,133 

;SEQ16 

DB 

FFH 

;end 



•anger. USED IN ONE CASE, HANGING OUT, FOLLOWED BY 101 


Tbll_M102: 


DB 


10 

,-motor delay between steps 

DB 


0 

;SEQ16 HANGING (PAUSE) ADD20 

DB 

FFH 

,-end 


Tbll_M103: 

DB 


1 

,-motor delay between steps 

DB 


114,133 

;SEQ6 HANGING (UP) 

DB 

FFH 

; end 


Tbll_M104: 

DB 


1 

,-motor delay between ste^s 


A-262 



SEQ6 HANGING (ME) 


DB 

DB 

Tbll_MJ05: 

DB 

DB 

DB 

t 

Tbll_M106: 

DB 

DB 

DB 


120,133 
FFH ;end 


1 

120,133 
FFH ;end 


10 

125,104,133 
FFH ;end 


;motor da.ay between steps 
;UP 


.■motor delay between steps 
;SEQ5 BORING 


END HANGOUT 


; danger, OK PAUSE FOR FORTUNE TELLING 
Tbll_M107: 

DB 1 ;motor delay between steps 

DB " 

DB r'H ;end ; Fortune pause 

;END GEORGE 07/04/98 
; FEED 

;GEORGE 07/05/98 
Tbll_M108: 

DB 10 /motor delay between steps 

DB 115,0,0,0,0,0.0,0,0,0,0,0,0,0,0 

DB 0,0,0,0,0,0,0,0,0,0,C,0,0,0,0,0.0 

DB 133 ,-SEQl FEED AGE1 (UUMMMMM) 

DB FFH ; end 


Tbll_M109: 

DB 1 ;motor delay between steps 

S DB 140 

DB 165,0.0,0,0.0.0,150.0,0,165,0,0.0,0,0.0.133 ;SE5 

FEED AGE1 (AAAAH) 

DB FFH ,• end 

; 

TbllJUlO: 

DB 1 /motor delay between steps 

DB 120,130,110,133 ;SEQ2 FEED AGE1 (KOHKOH) 

DB FFH j end 


Tbl1_M111: 

DB 

DB 

DB 

; 

Tbll_M112: 

DB 

DB 

DB 

; 

Tbll_M113i 
DB 

DB 

DB 


1 ;motor delay between steps 

120,130,120,133 /ME ME 
FFH ;end 


1 ;motor delay between steps 

145,133,150,133 ;E-DAY 

FFH end 


1 ;motor delay between steps 

115,130,110,133 ;DO MOH 

FFH ;end 


Tbll_M114i 






DB 


1 

;motor delay between 

steps 


DB 


115,130,120,133 

;TOH DYE 



DB 

FFH 

;end 




Tbll_M115: 






DB 

10 

.•motor 

delay between steps 



DB 


110,133 

; BURP 



DB 

FFH 

;end 




Tbll_M116: 






DB 


1 

;mo or delay between 

steps 


DB 


145,133 .-SIGH 



DB 

FFH 

;end 




?bll_M117: 






DB 

10 

;:..otor 

delay between steps 



DB 

150 

133 




DB 

FFH 

;end 




Tbll_M118: 






DB 

10 

;motor 

delay between steps 



DB 

120.0,0,0,133 




DB 

FFH 

; end 




Tbll_M119: 






DB 


1 

.•motor delay between 

steps 


DB 


120,130,110,133 

;TOH LOO 



DB 

FFH 

;end 




Tbll_M120: 






DB 


1 

.•motor delay between 

steps 


DB 


120,133,120,133 



DB 

FFH 

; end 




Tbll_M121: 






DB 


1 

.motor delay between 

steps 


DB 


145.130,120.133 ;HUNGRY 



DB 

FFH 

; end 




Tbl1_M122 s 






DB 


1 

.•motor delay between steps 


DB 


150,133 

.•LIKE 



DB 

FFH 

; end 




Tbl1_M123: 






DB 


1 

,-motor delay between steps 


DB 


150,0,0,133 

;seq4 feed done 



DB 


FFH 

; end 



;END FEED 






;END GEORGE 

• 

» 

07/05 98 




• 

;WAKE 






;GEORGE 07/06/98 




Tbll_M124: 



jSG DONE 



DB 


255 

;motor delay between 

steps 


DB 


95,133 




DB 


FFh 




; danger 











A-264 




Tbll_M125i 



;SG DONE 

DB 


1 

;motor delay between steps 

DB 


75,90 ;<- OK 


DB 


F p h 


Tbll_H126: 



jSG DONE 

DB 



.-motor delay between steps 

DB 


135,120,135 


DB 

FFh 



Tbll_M127: 



; SG DONE 

DB 

1 

.•motor 

delay between steps 

DB 


80.133 


DB 

FFh 



,- danger 




Tbl2_M128: 



; SG DONE 

DB 


1 

.-motor del^y between steps 

DB 


75,90 

; <-OK 

DB 


FFh 


Tbl2_M129: 



,-SG DONE 

DB 


1 

,-motor delay between steps 

DB 


90,110,133 


; DB 


90,110,70 


DB 

FFh 



Tbl2_M130: 



,-SG DONE 

DB 


1 

,-motor delay between steps 

DB 


115.133 


DB 

FFh 



; danger 




Tbl2_M131: 



; SG DONE 

DB 


1 

.-motor delay between steps 

DB 


90,70 


DB 

FFh 



Tbl2_H132: 



,-SG DONE 

DB 

1 

; motor 

delay between steps 

DB 


95,133 


DB 

FFh 




Tbl2_M133: 


;SG DONE 

DB 

1 

;motor delay between steps 

DB 

115,133 


DB 

FFh 


,- danger 
Tbl2_M134i 


,-SG DONE 

DB 

1 

,-motor delay between steps 

DB 

185 


DB 

FFh 


; danger 
Tbl2_M135 s 


,-SG DONE 

DB 

1 

,-motor delay between steps 

DB 

133 


DB 

FFh 


; danger 
Tbl2_H136 s 


;SG DONE 

DB 

1 

,-motor delay between steps 

DB 

133 


DB 

FFh 


; danger 




A-26S 



Tbl2_M137: 


; SO DONE 


DB 

1 

,-motor delay between steps 


DB 

145 



DB 

FFh 



,- danger 




Tbl2_M138: 


;SG DONE 


DB 

1 

,-motor delay between steps 


DB 

120,133,120,133,120,133,120,133,120,133,120,133,77,8 1 - 


DB 

0,0,70,0,0,0,0, 

0.0 


DB 

FFh 



; danger 




Tbl2_M139: 


;SG DONE 


DB 

1 

,-motor delay between steps 


DB 

82,70 



DB 

FFh 



; danger 




Tbl2_M140: 


; SG DONE 


DB 

1 

,-motor delay between steps 


DB 

120,115,130,120 

1,70 


DB 

FFH ;end 



; danger 




Tbl2_M141: 


,-SG DONE 


DB 

1 

,-motcr delay between steps 


DB 

133 



DB 

FFH ,-end 



; danger 




Tbl2_M142: 


;S DONE 


DB 

1 

,-motor delay between steps 


DB 

75 



DB 

FFH ;end 



Tbl2_M143: 


,-SG DONE 


DB 

1 

;motor delay between steps 


; DB 

90,80,100,75 



DB 

90,80,100,133 



DB 

FFH ;end 



; danger 




Tbl2_M144: 


jSG DONE 


DB 

1 

,-motor delay between steps 


DB 

120 



DB 

FFH ;end 



I 

j danger 




Tbl2_M145: 


;SG DONE 


DB 

1 

,-motor delay between steps 


DB 

110,75 



DB 

FFH ;end 



Tbl2_M146: 


,-SG DONE 


DB 

1 

,-motor delay between steps 


; DB 

90,75 



DB 

90,133 



DB 

FFH ;end 



;danger 




Tbl2_M147: 


;SG DONE 


DB 

1 

.•motor delay between steps 





A-266 



DB 


70,90,75 

DB 

Tbl2_M148s 

FFH 

;end 

;SG DONE 

DB 


1 

.•motor delay between steps 

DB 


120,130, 

115,126,115,140,110,0,0,0,0,0,0.0,0.0,133 

DB 

FFH 

;end 


; danger 
Tbl2_M149: 



;SG DONE 

DB 


1 

;motor delay between steps 

DB 


75 


DB 

FFH 

; end 


Tbl2_M150: 



;SG DONE 

DB 


1 

;motor delay between steps 

DB 


146,135 


DB 

FFH 

i end 


Tbl2_M151: 



;SG DONE 

DB 


1 

;motor delay between steps 

DB 


120,133, 

70,0,135 

DB 


FFH 

; end 

; danger 
Tbl2_M152: 



;SG DONE 

DB 


1 

;motor delay between steps 

DB 


75 


DB 

FFH 

; end 


; danger 
Tbl2_M153 : 



,-SG DONE 

DB 


1 

,-motor delay between steps 

DB 


115,75 


DB 

FFH 

; end 


; danger sleep 



Tbl2_M154: 



;SG DONE 

DB 


100 

.•motor delay between steps 

DB 




0,0,0,85,30 

,0,20,0,85,30 

,0,20,0,85,30,0,20,0,75,0,0,0,0,85 

DB 


30,0,20, 

0,10 

DB 

FFH 

;end 


,- danger 
Tbl2JM155: 



;SG DONE 

DB 


1 

;motor delay between steps 

DB 


90,70 


DB 

FFH 

jend 


; danger 
Tbl2_M156: 



;SG DONE 

DB 


1 

;mntor delay between steps 

DB 


115,75 


DB 

FFH 

; end 


,- END WAKE 




;END GEORGE 

07/06/98 



;HUNGER 

;GEORGE 07/06/98 

Tbl2_JH157: ;SG DONE ; HUNGER 


A-267 



DB 50 

;DB 120,120,133 

DB 120,0,133 

DB FFH ,- end 

Tbl2_M158: 

DB 1 

DB 180,133 

DB FFH ,- end 

Tbl2_M159: 

DB 1 

DB 115,110,133 

DB FFH ;end 

Tbl2_M160: 

DB 1 

DB 75,133 

DB FFH ;end 

Tbl2JM161: 

DB 1 

DB 115,130,115,1 

DB FFH ;end 

Tbl2_M162: 

DB 1 

DB 115,110,133 

DB FFH . ; end 

Tbl2_H163: 

DB 50 

DB 190,133 

DB FFH ;end 

Tbl2_M164: 

DB 50 

;DB 148.148,133 

DB 148,0,133 

DB FFH ;end 

Tbl2_M165: 

DB 50 

;DB 150,150,150, 

DB 150,0,0,133 

DB FFH ;end 

Tbl2_Ml66: 

DB 1 

DB 120,133 

DB FFH ;end 

Tbl2_M167: 

DB 1 

DB 115,133 

DB FFH ;end 


.•motor delay between steps 


;SG DONE 

.-motor delay between steps 


;SG DONE 

,-motor delay between steps 


;SG DONE 

,-motor delay between steps 


,-SG DONE 

,-motor delay between steps 


; SG DONE 

,-motor delay between steps 


;SG DONE 

,-motor delay between steps 


,-SG DONE 

,-motor delay between steps 


,-SG DONE 

,-motor delay between steps 


,-SG DONE 

,-motor delay between steps 


,-SG DONE 

,-motor delay between steps 


Tbl2_M168: 


;SG DONE 



DB 


1 .-motor delay between steps 


DB 


115,133 


DB 

FFh 



;END GEORGE 

07/06/98 


,-END HUNGER 




;INVERT 




1 GEORGE 07/07/98 


Tbl2_M169! 


;SG DONE ;INVERT 


DB 


1 .-motor delay between steps 


DB 


110, 122, 75,130,117,133 


DB 

FFH 

; end 


Tbl2_M170: 


;SG DONE 


DB 

10 

,-motor delay between steps 


; DB 


165,165,133 


DB 


165,0,133 


DB 


FFH ;end 


TbI2_M171: 


; SG DONE 


DB 


10 ;motoi delay between steps 


DB 


105,133 


DB 

FFH 

; end 


Tbl2_M172i 


; SG DONE 


DB 


1 .-motor delay between steps 


DB 


150,133 


DB 

FFH 

; end 


Tbl2_M173: 


,-SG DONE 


DB 


1 ,-motor delay between steps 


DB 


155,190,133 


DB 

FFH 

; end 


Tbl2_M174: 


,-SG DONE 


DB 


1 ,-motor delay between steps 


DB 


145,133 


DB 

FFH 

;end 


Tbl2_M175: 


;SG DONE 


DB 


1 .-motor delay between steps 


DB 


150,135,145,133 


DB 

FFH 

;end 


Tbl2_M176: 


,-SG DONE 


DB 


1 .-motor delay between steps 


DB 


75,133 


DP 

FFH 

;end 


Tbl2_M177: 


,-SG DONE 


DB 


1 ,-motor delay between steps 


DB 


110,133,115,133 


DB 

FFH 

I end 


Tbl2_M178: 


,-SG DONE 


DB 


1 ,-motor delay between steps 


DB 


115,133 


DB 

FFH 

;end 





A-269 



Tbl2_M179: 

DB 

DB 

DB 

Tbl2_M180: 

DB 

DB 

DB 

Tbl2_M181: 

DB 

DB 

DB 

Tbl2_M182: 

DB 

DB 

Db 


115,133 
FFH ;end 


;SG DONE 

.-motor delay between steps 


; SG DONE 

1 .-motor delay between steps 

110.125,115,133 
FFH ;end 


150,133 
FFH ;end 


115,133 
FFH end 


;SG DONE 

,-motor dt.ay between steps 


;SG DONE 

;motor delay between steps 


Tbl2_M183: 

DB 

DB 

DB 

Tbl2_M184: 

DB 

DB 

DB 

Tbl2_M185: 

DB 
; DB 


;SG DONE 

1 ,-motor delay between steps 

115,130,110,133 
FFH ;end 


1 

75.133 
FFH .- end 


,-SG DONE 

;motor delay between steps 


Tbl2_M185: ;SG DONE 

DB 1 ,-motor delay between steps 

;DB 150,150,133 

DB 150,0,133 

DB FFH ; end 

Tbl2_M186: ;SG DONE 

DB 1 ,-motor delay between steps 

DB 115,130,115,133 

DB FFH ;end 

Tbl2_M187: ;SG DONE 

DB 1 ,-motor delay between steps 

DB 115,130,115,133 

DB FFH ,- end 

) 

Tbl2_M188: ;SG DONE 

DB 1 ,-motor delay between steps 

DB 145,135,145,133 

DB FFH ;end 


Tbl2_M189: 

DB 1 

DB 120,105,133 

DB FFH ;end 


,-SG DONE 

,-motor delay between steps 


Tbl2_M190: 


A-270 



DB 


1 

,-motor delay between steps 


DB 


155,190,133 



DB 

FFH 

,- end 



Tbl2_M191s 





DB 


1 

,-motor delay between steps 


DB 


155,190,133 



DB 

FFH 

,- end 



/_M192: 





DB 


1 

,-motor delay between steps 


DB 


155,190,133 



DB 

FFH 

;end 



1 END OEORGE 

07/07/98 



;END INVERT 





;start at 202 




Tbl2_M193: 


;BACKSG 

;SO DONE 


DB 


100 

,-motor delay between steps 


;DB 


200,200,200,200,133 


DB 


200,0,0,0,133 



DB 


FFH ;end 



Tbl2_M194: 



;SG DONE 


DB 


1 

.-motor delay between steps 


DB 


75,133 



DB 

FFH 

; end 



Tbl2_M195: 



;SG DONE 


DB 


1 

motor delay between steps 


DB 


115,125,115,133 


DB 

FFH 

;end 



Tbl2_M196: 



;SG DONE 


DB 

10 

,-motor delay between steps 


DB 


148,133 



DB 

FFH 

;end 



Tbl2_M197: 



,-SG DONE 


DB 


1 

.-motor delay between steps 


DB 


115,125,115,133 


DB 

FFH 

;end 



Tbl2_M198: 



,-SG DONE 


DB 


100 

,-motor delay between steps 


DB 


145,0,0,133 



DB 

FFH 

jend 



Tbl2_M199: 



;SG DONE 


DB 


10 

,-motor delay between steps 


DB 


110,133 



DB 

FFH 

send 



Tbl2_M200i 



,-SG DONE 


DB 


1 

,-motor delay between steps 


DB 


75,133 



DB 

FFH 

,- end 



Tbl2_M201: 



,-SG DONE 


DB 

10 

;mot 

delay between steps 






A-271 



DB 


115.125,115,133 


DB 

FFH 

;end 



Tbl2_M202: 



;SG DONE 


DB 


1 

.-motor delay between steps 


DB 


75,133 



DB 

FFH 

; end 



; danger 
Tbl2_M203: 



. -J DONE 


DB 


1 

,-motor delay between steps 


DB 


120,128,79,133, 

146,0,0,0,133,145 


DB 

FFH 

; end 



Tbl2_M204: 



; SG DONE 


DB 

10 

;motor 

delay between step- 


DB 


190,0,133 



DB 

FFH 

;end 



Tbl2_M205: 



,-SG DONE 


DB 


1 

;moto: de oy between step 


DB 


115,133 



DB 

FFH 

;end 



; danger 
Tbl2_M206: 



; SG DONE 


DB 


1 

,-motor delay between steps 


DB 


75 



DB 

FFH 

; end 



; danger 
Tbl2_M207: 



;S3 DONE 


DB 

10 

;motor 

delay between steps 


DB 


150 



DB 

FFH 

,-end 



Tbl2_M208: 



;SG DONE 


DB 

10 

,-motor 

delay between steps 


DB 


75,133 



DB 

FFH 

,- end 



Tbl2_M209 : 



;SG DONE 


DB 


100 

,-motor delay between steps 


DB 


150,0,0,0,133 



DB 

FFH 

; end 



Tbl2_M210: 



;SG DONE 


DB 

10 

;motor 

delay between steps 


DB 


123,110.75,133, 

,115.133 


DB 

FFH 

; end 



; danger 
Tbl2_M211: 



,-SG DONE 


DB 


1 

,-motor delay between steps 


DB 


75 

S 


DB 

FFH 

end 



; danger 
Tbl2_M212: 



,-SG DONE 


DB 


1 

;motor delay between steps 


D3 


133 



DB 

1 

FFH 

,- end 


A-272 



Tbl2_M213 : 

DB 

DB 

DB 

Tbl2_M214: 

DB 

DB 

DB 

; danger 
Tbl2_M215: 

DB 

DB 

DB 


10 

115,150.133 
FFH ;end 


1 

80,133 
FFH ;end 


100 

138 

FFH ;end 


;SG DONE 

.•motor delay between steps 


;SG DONE 

.-motor delay between steps 


;SG DONE 

.•motor delay between steps 


Tbl2_M216: ;SG DONE 

DB 10 ;motor delay between steps 

DB 75,133 

DB FFH ;end 

Tbl2_M217: ;SG DONE 

DB 1 .-motor delay between steps 

DB 115.130,115,133 

DB FFH ;end 


Tbl2_M218: 

DB 

DB 

DB 

Tbl2_M219: 

DB 

; DB 

120,130,120, 
DB 

120,130,120, 

DB 


50 

114,133 
FFH ;end 


;SG DONE 

;motor delay between steps 


,-SG DONE 

10 ;motor delay between steps 

130,120.130,120,130.120.130,120.130,115.115.133 

130.120,130.120,130,120.130,120,130,115.0,133 
FFH ;end 


Tbl2_M220: 

DB 

; DB 

120.130.120, 
DB 

120.130.120. 
DB 


;SG DONE 

10 ,-motor delay between steps 

130,120,130,120,130,120,130,120.130,115,115.133 

130.120,130.120,130,120,130,120,130,115,0,133 
FFH ;end 


Tbl2_M221: 

DB 

DB 

DB 


10 

145,133 
FFH ,-end 


; SG DONE 

,-motor delay between steps 


Tbl2_M222: 

DB 

DB 

DB 


50 

0,0,0,0,115.133 
FFH ;end 


;SG DONE 

,-motor delay between steps 


Tbl2_M223: ;SG DONE 

DB 1 ,-motor delay between steps 

DB 115,125,115,133 


A-2 73 



DB FFH ;end 


Tbl2_M224: 

DB 

DB 

DB 

Tbl2_M225: 

DB 

DB 

DB 

Tbl2_M226: 

DB 

DB 

DB 

Tbl2_M227: 

DB 

DB 

DB 

Tbl2_M228: 

DB 

DB 

DB 

Tbl2_M229: 

DB 
; DB 
DB 
DB 


FFH 


FFH 


FFH 


FFH 


75,133 

;end 


110,133 
; end 


100 

120,133 
; end 


;SG DONE 

,-motor delay between steps 


:SG DONE 

.•motor delay between steps 


;SG DONE 

;motor delay between steps 


;SG DONE 

30 ,-motor delay between steps 

190,120.125,120,125,120,125,133 
; end 


; SG DONE 

1 ;mctor delay between steps 

115,130.110,130,115,133 
FFH ;end 

; SG DONE 

30 .-motor delay between steps 

115,120,110,110,110,133 
115,120,110,0,0,133 
FFH ;end 


Tbl2_H230: 

DB 

DB 

DB 


FFH 


,-SG DONE 

1 ,-motor delay between steps 

110,125.115,133 

,-end 


Tbl2_M231: 

DB 

DB 

DB 

Tbl2_M232: 

DB 

DB 

DB 

; danger 
Tbl2_M233: 

DB 

DB 

DB 


FFH 


FFH 


FFH 


1 

75,133 
,- end 


110,133 
; end 


1 

145 
,- end 


,-SG DONE 

,-motor delay between steps 


;SG DONE 

,-motor delay between steps 


;SG DONE 

;motor delay between steps 


,- danger sleep 
Tbl2_M234: 

DB 

DB 

DB FFH 


10 

10 

; end 


,-SG DONE 

,-motor delay between steps 


Tbl2_M2 3 5: 


; SG DONE 


A-274 



FFH 


10 ;motor delay between steps 

115,125,110,133 
; end 


Tbl2_M236: 

DB 

DB 

DB 

Tbl2_M237: 

DB 

;DB 

DB 

T3 

Tbl2_M238: 

DB 

DB 

DB 

Tbl2_M239: 

DB 

DB 

DB 

Tbl2_M240: 

DB 

DB 

DB 


10 

115,133 
FFH ;end 


.-motor delay between steps 


;SG DONE ;SICK2 

100 ,-motor delay between steps 

133,140,140,150,150,180.133 
133,140,0.150,0,180,133 
FFH ;end 


120,110,133 
FFH ;end 


115,133 
FFH ;end 


115,0,0,0,0,133 
FFH ,- end 


;SG DONE 

,-motor delay between steps 


;SG DONE 

,-motor delay between steps 


,-SG DONE 

ii.etor delay between steps 


Tb]2_M241: ; G DONE 

DB 1 -.-..tor delay between steps 

,-DB 124.133,120,133,115,115,0,0.133 

DB 124,133,120,133,115,0,0,0,133 

DB FFH ; end 

Tbl2_M242: ;SG DONE 

DB 50 .-motor delay between steps 

j DB 115,70,120,120,133 

DB 115,70,120,0,133 

DB FFH ;end 


; danger 
Tbl2_M243: 

DB 

DB 

DB 

; 

Tbl2_M244: 

DB 

DB 

DB 


50 

70 

FFH ;end 


50 

120,133 
FFH ;end 


;SG DONE 

,-motor delay between steps 


,-SG DONE 

,-motor delay between steps 


Tbl2_M245: 

DB 

DB 

DB 


50 

75,133 

FFH ;end 


,- SG DONE 

,-motor / between steps 


Tbl2_M246: 

DB 


;SG DONE 

,-motor delay between steps 


A-275 



DB 

DB 

Tbl2_M247: 

DB 

DB 

DB 

Tbl2_M248: 

DB 

DB 

DB 

Tbl2_M249: 

DB 

DB 

DB 

Tbl2_M250: 

DB 
; DB 


70,133 
FFH ;end 

;SG DONE 

l 1 ' .-motor delay between steps 

110,133,0,0 
FFH ;end 

;SG DONE 

10 .-motor delay between steps 

145,0,0,0,133 
FFH ;end 

;SG DONE 

1 ,-motor delay between steps 

115,0,0,0.133 
FFH ;end 


;SG DONE 

10 ;motor delay between steps 

150,150,150,190,0,133 


DB 150,0,0,190,0,133 

DB FFK ;end 

;GEORGE 07/08/98 
;LIGHT 

Tbl2_M251: 

DB 5 ,-motor delay between steps SGTEST 

DB 115,132,125,110,132 

DB FFh 


Tbl2_M252: 

DB 

DB 

DB 

Tbl2_M253: 

DB 1 
DB 

DB FFh 
Tbl2_M254 : 

DB 

; DB 
DB 

DB FFh 
Tbl2_M255: 

DB 

DB 

DB FFh 
Tbl3_M256: 

DB 

DB 

DB FFh 
Tbl3_M257i 

DB 10 
DB 

DB FFh 
Tbl3_M258: 

DB 

DB 


1 ,-motor delay between steps 

190,133 

FFh 

,-motor delay between steps 
10,152,133,160,0,133 


1 ,-motor delay between steps 

143,13' .,3,137,150,133,155,133 
143,137,143,137,150,0,0,0,133,155,133 


1 ,-motor delay between steps 

60,90,60,85,90,60,90,133 


10 ,-motor delay between st DONE RB 

180,165,165,133 


,-motor delay between steps 

190,133,105,133,105,160,133 ,-WOW DONE 


4 ;motjr delay between steps DONE 

60.133,0,0,0,0,0,155,133,145,133 


A-276 




DB FFh 
Tbl3_M259: 

DB 1 ;motor delay between steps DONE 

DB 160,133,180.133,147,160,133 

DB FFh 

Tbl3_M260: 

DB 1 .-motor delay between steps 

DB 160,133,90,133 

DB FFh 

Tbl3_M261: 

DB 7 ;motor delay between steps 

DB 190,133,100,133 

Dh FFh 

Tbl3_M262: 

DB 7 ,-motor delay between steps 

DB 60,133,140,153,0,0,133,150.133 

DB FFh 
Tbl3_M263: 

DB 1 ; MOTOR DELAY BETWEEN STEPS 

DB 155,133,160,133,120.110,133 

DB FFh 

Tbl3_M264: 

DB 10 ,-motor delay between steps 

DB 190,133,0.0,0,0,110,0,0,0.133 

DB FFh 
Tbl3_M265: 

DB 1 ,-motor delay between steps 

DB 60,133,180,133 

DB FFh 
;END LIGHT 
,-END GEORGE 0~/Ot/98 
l 

; DARK 

,-GEORGE 07/08/98 
Tbl3_M266: 

DB 1 ,-motor delay between steps 

DB 150,133,160,133,120,112,0,0,0,0,0,0,0,0,133 

Dfc FFh 

Tbl3_M26'- 

DB 1 ,-motor delay between steps DONE RB 

DB 150,133,120,112,0,0,0,0,0,133,149,0,0,133 

DB FFh 

; 

Tbl3_M268i 

DB 10 ,-motor delay between steps 

DB 150,133,112,133,120,133,148,133,118,0,0,0,133,146,133 

DB 147,0,0,0,0,0,0,133 

DB FFH ;end DONE RB 

1 

Tbl3_J1269i 

DB 1 ,-motor delay between Bteps DONE RB 

DB 10.20.123,115,123,115,123,115,133 

DB FFH ,-end 

; 

Tbl3_M270i 

DB 1 ;motor delay between steps DONE 

DB 190,133,120,133,112,0,0,0,0,0,0,130,112,133 

DB FFH ,- end 


A-277 



; 

Tbl3_M271: 

DB 1 ;motor delay between steps 

DB 147,155,139,149 

DB 133,149,0,0,0,133 ;SEQ6 AGE4/SEQ14 AGE 4 LIGHT js 

DB FFH ; end 

; 

Tb'1_M272: 

DB 1 .-motor delay between steps 

DB 150,133,0,0,0,159,133,150.0,0,133 

DB 145,137,114,133,117,125,117,133 

DB FFH ,- end DONE 

Tbl3_M27 3: 

DB 
DB 
DB 
DB 
DB 

Tbl3_M274: 

DB 1 ;motor delay between steps 

DB 150,133,150,0,0,0.133.0.0,0.0,120,115,0,0.0.0,0,0.133 

DB FFH ;end 

Tbl3„M275: 

DB 10 ,-motor delay between steps 

DB 

150,133,0,0,0,150,0,0.0.133,0,120,133,120,133,155,0,0,0.0,133 
DB FFH ;end 

Tbl3_M276: 

DB 1 ;motor delay between steps 

DB 190,0,0,0,0,133,0,0,0,0,0,148,133,118,133,0,0,0 

DB 146,133,147,0,0,0,0,0,0,133 

DB FFH ; end 

Tbl3_M277: 

DB 1 ,-motor delay between steps 

DB 190,133,120,133,112,0,0,0,0,0,0,130.112,133 

DB FFH ;end 

Tbl3_M278: 

DB 1 ,-motor delay between steps 

DB 60,133,60,133,146,154,133 

DB FFH ,- end 

Tbl3_M279i 

DB 1 ,-motor delay between steps 

DB 190,133,0,0,0,110,0,0,0,0,133 

DB FFH ,- end 

Tbl3_M280: 

DB 10 ,-motor delay between steps 

DB 153,133,0,0,0,116,0,0,0,133,190.155,0.0,0,133 

DB FFH ; end 

Tbl3_M281i 

DB 1 ,-motor delay between steps 

DB 190,155,0,0,0,133,119,0,0,0,0,0,0,133 


1 ,-motor delay between steps 

145.155,133,120,115,133.190,133 

0,0,0,150,0,0,0,0,0,0,0,0,133 

0,0,0,0,0,0,0,0,0.0.115,133 

FFH :end 


A-278 



DB 146,133,147,0,0,0,0,0,0,133 

DB FFH ;end 

1 

Tbl3_M282: 

DB 1 ,-motor delay between steps 

DB 60,133,75,83,78,83,78,133 

Db FFH ;end 

Tbl3_M283: 

DB 1 ,-motor delay between steps 

DB 145,155,133,120,115,133,72,0,0,0,0,0,92.133,190.133 
DB FFH ; end 

I 

Tbl3_M284: 

DB 1 ,-motor delay between steps 

DB 190,133,0,0,0,110,0,0,0,0,133 

DB FFH ,- end 

Tbl3_M285: 

DB 10 ,-motor delay between steps 

DB 150,133,0,0,0,116,0,0,0,133,190,155,0,0,0,133 

DB FFH ,- end 

Tbl3_M286: 

DB 1 ,-motor delay between steps 

DB 190,155,0,0,0,133,119,0,0,0,0,0,0,133 

DB 147,0,0,0,0,0,0,0,0,0.133 

DB FFH ;end 

Tbl3_M287: 

DB 1 ,-motor delay between steps 

DB 190,133,110,0,0,0,0,0,133,112,0,0,0,133 

DB FFH ;end 

Tbl3_M288i 

DB 1 ,-motor delay between steps 

DB 110,0,0,0,133,115.133.147 

DB 133,190,133 ,-SEQ7 AGE4/SEQ15 AGE 4 LIGHT js 

DB FFH ; end 

; 

Tbl3JM289: 

DB 1 ,-motor delay between steps 

DB 145,155,133.0,0,0,0.120,115,133,150,133 

DB 160,0,0,0,0,190.0,0.0,0,0,0,0,0,0,133 

DB 0,0,0,0,0,0,0,0,0,0,133 ;SEQ8 AGE4/SEQ 16 AGE 4 

INVERT js 

DB FFH ;end 

,-END GEORGE 07/08/98 
; END DARK 
1 

;SOUND 
Tbl3_M290: 

DB 1 ,-motor delay between steps 

DB 155,133,0,0,0,0,125 

DB 115,145,155,133 ;S1-A1/S9-A1/S1-A2 SOUND js 

DB FFH ;end ;S9-A2/S1-A3/S9-A3 SOUND js 

Tbl3_M291: 

DB 1 ,-motor delay between steps 

DB 100,0,0,0,10 


A-279 



;S2-A1/S10-A1/S2-A2 SOUND jo 
;S10-A2/S2-A3/S10-A3 SOUND jo 
;S2-A4 SOUND js 


DB 0,0,0,0,0,0,0 

DB 0,0.0,70,0,0,0,0 

DB 0,0,100,0.0,0,133 

DB FFH ; end 

Tbl3_M292: 

DB 1 ;motor delay between steps 

DB 110,0,0,133,0,0,0,0 

DB 0,0,155,0,0,0,0 

DB 133,120,0,112.0 

DB 148,0,0,0,0,0,133 ;S3-A1/S11-A1 SOUND js 

DB FFH .- end 

Tbl3_M293: 

DB 15 .-motor delay between steps 

DB 110,0,120,0,0,0,0,0 

DB 145,0,0,0,155,115 

DB 118,0,0,0,0,133 ;S4-A1/S12-A1 SOUND js 

DB FFH ;end 

Tbl3_M294: 

DB 1 ;motor delay between steps 

DB 115,0,0,0,148 

DB 115,0,0,133 ;S5-A1/S13-A1 LIGHT (with say/m2) js 

DB FFH ; end 

Tbl3_M295: 

DB 1 ,-motor delay between steps 

DB 155,133,122,0 ;S6-A1/S14-?1/S6-A2 SOUND js 

DB 115,145,120,0,0,133 ;S14-A2/S6-A3/S14-A3 SOUND js 

DB FFH ; end 

Tbl3_M296: 

DB 1 

DB 14 150 

DB 125,115 

DB 0,0,0,0,133 

DB FFH ;end 

Tbl3_M297: 

DB 1 ,-motor delay between steps 

DB 115,0,0,148,0,0,0,0 

DB 138,0,0,0,148,0,0,0 

DB 0,0,0,0,133 ;S8-A1/S16-A1/S8-A3/S16-A3 SOUND js 

DB FFH ; end 

; 

Tbl3_M298: 

DB 1 ,-motor delay between steps 

DB 110,0,0,133,0,0,0,0 

DB 0,0,155,0,0,0,0 

DB 133,120,0,112,0 

DB 148,0,0,0,0,0,133 .-S3-A2/S11-A2 SOUND js 

DB FFH ;end 

Tbl3_M299: 

DB 1 ,-motor delay between steps 

DB 110,0,120,0,0,0,0,0 

DB 145,0,0,0,155,190 

DB 0,0,0,0,0,0,160,0,133 ;S4-A2/S12-A2 SOUND js 

DB FFH ,-end 


.-motor delay between steps 

;S7-A1/S15-A1 SOUND (with say/m2) js 


A-280 



; 

Tbl3_M300: 

DB 
DB 

say/ra2) j s 
DB 

say/m2) js 
DB 

Tbl3_M301: 

DB 1 .-motor delay between steps 

DB 115,0,0,0.0,145,0,0,165 ;S7-A2/S15-A2 SOUND (with 

say/m2) js 

DB 0,0,190,165,0,0,0,133 

DB FFH ;end 

Tbl3_M302i 
DB 
DB 
DB 
DB 

Tbl3_M303: 

DB 
DB 
DB 
DB 
DB 
DB 

Tbl3_M304: 

DB 
DB 
DB 
DB 
DB 

Tbl3_M305: 

DB 1 ;motor delay between steps 

DB 115,0,0,0.0,160 

DB 0,0,190,0,0,0,0 

DB 0,165,133 ;S7-A3/S15/A3 SOUND (with say/m2| js 

DB FFH ;enc ;S7-A4 SOUND (with say/m2) js 

I 

Tbl3_M306: 

DB 1 ,-motor delay between steps 

DB 157,0,0,0,133 

DB 0,0,120,0,0,0 

DB 133,150,0,0,0,0,133 .-S1-A4 SOUND js 

DB FFH ;end 

; 

Tbl3_M307: 

DB 1 ,-motor delay between steps 

DB 110,0,0,133,0,0,0,0 

DB 0,0,155,0,0 

DB 133,0,112,0,0,0 

DB 148,0,0,0,0,0,0,0,0,133 ;S3-A4 SOUND js 

DB FFH ;end 

; 

Tbl3_H308: 


1 ,-motor delay between steps 

115,0,0,148,0,0,0 

0,0,0,0,133 .-S8-A2/S16-A2 SOUND js 

FFH ;end 


1 ,-motor delay between steps 

110,0,0,133,0,0,0,0 

0,0,155,0,0 

133,0,112,0 

148,0,0,0,0,0,133 ;S3-A3/SI1-A3 SOUND js 

FFH ,- end 


1 ;motor delay between steps 

110 , 0 , 120 , 0 , 0 , 0 , 0,0 

160,0,0,0,190 

160,0,0,0,0,133 ;S4-A3/S12-A3 SOUND js 

FFH ;end ,-S4-A4 SOUND js 


1 ,-motor delay between steps 

165,0,0,0,190,0,0 .-S5-A2/S13-A2 SOUND (with 

0,0,165,0,0,0,0,133 ;S5-A3/S13-A3 SOUND (with 

FFH .-end ;S5-A4 SOUND (with say/m2> js 


A-281 



DB 1 ;motor delay between steps 

DB 157,0,0.0,133 

DB 0,0,120,0,0,0 

DB 133,150,0,0,0.0,0,0,133 ;S6-A4 SOUND js 

DB FFH ;end 

Tbl3_M309: 

DB 1 ,motor delay between steps 

DB 115,0,0,148,0,0,0,0,0,0,0,0 

DB 138,0,0,0,0,0,148,0,0,0 

DB 0,0,0,0,133 ;S8-A4 SOUND js 

DB FFH ;end 

,-END GEORGE 
;END SOUND 
;GEORGE 07/09/98 
,-TILT 
Tbl3_M310: 


DB 


1 .-motor delay between steps 

; DB 


170,170,0,0,0 

DB 


170,0,0,0,0 

DB 


0,0,0,0,133 ;S1 A1/S4 A1/S2 A4 TILT js 

DB 


FFh 

Tbl3_M311: 

DB 


1 ,-motor delay between steps 

DB 


125,0,0,0,133,120,145,110,133 ;S2 A1 TILT js 

DB 


FFH 

Tbl3_M312: 

DB 


1 ,-motor delay between steps 

DB 


150,133,145,133,120,133 ;S3 A1 TILT js 

DB 

FFh 


Tbl3_M313: 

DB 

1 

,-motor delay between steps 

DB 


100,0,0,0,0 

DB 


0,0,0,0,133 ;S5 A1/S4 A2/S2 A3/S2 A4 TILT js 

DB 


FFh 

Tbl3_M314: 

DB 


1 ,-motor delay between steps 

DB 


120,100,0,0,0,0,0,0,70,80,90 

DB 


70,85,100,0,0,133 ;S6 A1 TILT js 

DB 

t Fh 


Tbl3_M315: 

DB 


1 .-motor delay between steps 

DB 


125,133,100,133,145,0,0,160 

DB 


190,0,0,175,160,133 ,-S7 A1 TILT/S6 A2 TILT js 

DB 

FFh 


Tbl3..M31 6: 

DB 


1 ,-motor delay between steps 

DB 


145,133,145,160,145,160 

DB 


0,0,0,0,0,0,190,0,0,0,0,0 

DB 


0,0,0,0,0,0,0,150,133 ;S8 A1 TILT (with say/m5) 

js 

DB 

FFh 


Tbl3_M317: 

DB 

10 

;motor delay between steps 

DB 


160,0,0,0,0,0,0,0,190,133 ,-S9 A1 TILT/S9 A2 TILT 

js 

DB 

FFh 


Tbl3_M318: 

DB 

10 

,-motor delay between steps 


A-282 




DB 145,165,0,0,0,0,0,0,0.0,0,0 

DB 190,0,0,180,190,133 ;S10 A1 TILT/S10 A2 TILT js 

DB FFh 
Tbl3_M319: 

DB 1 ;motor delay between steps 

DB 0,120,0,0,133,141 

DB 133,120,0,0,0,133 ;S11 A1 TILT (with say/m2) js 

DB FFh 

Tbl3_M320 s 

DB 1 ;motor delay between steps 

DB 150,133,123,0,0,133.142 

DB 0,0,150,0,0,0,0,0,133 ;S12 A1 TILT js 

DB FFh 

Tbl3_M321: 

DB 1 ,-motor delay between steps 

sDB 200,170,170,0,0,0,0,133 ;S13 A1 / S15 A3 TILT js 

DB 200,170,0,0.0,0,0,133 ;S13 A1 / S15 A3 TILT js 

DB FFh 

Tbl3_M322: 

DB 1 ;motor delay between steps 

DB 170,0,0,0,0,133,126,130,118,133 ;S15 A1 TILT js 

DB FFh 
Tbl3_M323: 

DB 1 ;motor delay betweer steps 

DB 155,0,0,0,0,185 

DB 160,0,0,133 ;S16 A1 / S15 A2 / S13 A3 TILT js 

DB FFh 
Tbl3_M324: 

DB 1 ;motor delay between steps 

DB 170,160,0,0,0,0,0,133 ;S1 A2/S3 A2/S1 A3/S1 A4 TILT 

DB FFh 
Tbl3_M325: 

DB 10 ,-motor delay between steps 

DB 120,145,110,133 ;S2 A2 TILT (with say/ml6) js 

DB FFh 
Tbl3_M326: 

DB 10 ;motor delay between steps 

DB 120,100,0,0,0,0,0,0,133 

DB 148.133,142,115,0,0,133 ;S5 A2 TILT js 

DB FFh 

Tbl3_M327: 

DB 1 ,-motor delay between steps 

DB 145,133,145,160,145,160,0,0,0,0,0,0 

DB 190,0,0,0,0,0,0,0,0 

DB 150,133 ;S7 A2 TILT (with say/m5) js 

DB FFh 

J 

Tbl3_M328: 

DB 1 ,-motor delay between steps 

DB 145,0,0,160,0.0,0,0 

DB 0,0,0,0,0,0,133 ,-S8 A2 TILT (with say/m5) js 

DB FFH ;end 

I 

Tbl3_M329: 

DB 1 ,-motor delay between steps 


A-283 



DB 0,120,133,143 

DB 118,0,0,0,133 ;SI1 A2 TILT (with say/m2) js 

DB FFH ;end 

Tbl3_M330i 

DB 1 .-motor delay between steps 

DB 150,133,123,0,0,133.142 

DB 0,0,150,0,0,0,0,0,133 ,-S12 A2 TILT js 

DB FFH {end 

Tbl3_M331i 

DB 1 ,-motor delay between steps 

DB 120,150,133 ; S13 A2 TILT (with say/m5) js 

DB FFH {end 

Tbl3_M332i 
DB 
DB 
DB 
DB 

Tbl3_M333: 

DB 10 .-motor delay between steps 

DB 155,0,0,0,0.190,0,0,183,0,0,0 

DB 175,0,0,0,162,0,0,0,0,0,0.0,133 

DB 0,0,120,115,110.115.105.133 

DB 145,155,165,0,0,0,0 

DB 0,0,0,0,0,133 ,-S16 A2/S14 A3/S14 A4 TILT js 

DB FFH ,- end 

Tbl3_M334: 

DB 10 ,-motor delay between steps 

DB 120,100,0,0,0,0.0,0,133 ,-S3 A3 TILT js 

DB FFH ,• end 

Tbl3_M335: 

DB 1 ,-motor delay between steps 

DB 145,133,120,117 

DB 110,0,0,133 ,-S4 A3/S4 A4 TILT (with say/m26) js 

DB FFH {end 

Tbl3_M336: 

DB 
DB 
DB 
DB 

Tbl3_M337: 

DB 
DB 
DB 
DB 
DB 

Tbl3_M338: 

DB 1 ,-motor delay between steps 

DB 145,165,0,0,0,0,0,0,0 

DB 0,0,0,0,0,0,133 {S7 A3/S7 A4 TILT (with say/m5l js 

DB FFH {end 


1 ,-motor delay between steps 

145,165,0,0,0,0,0,0,0,0,0,0,133 

120,133,145,155,0,0,0,133,115,0,0,0,133 ,-S4 A3 TILT js 
FFH .- end 


1 ,-motor delay between steps 

145,133,122,147,139,160 

190,0,0,0,0 

0,0,0,0,155,133 ,-S6 A3 TILT (with say/m5) js 

FFH ;end 


1 ,-motor delay between steps 

120,0,0,0,0,150.0,0,0 

160,0,0,0,133,110.0,0,133 ,-S14 A2 TILT js 

FFH ,- end 


A-284 



Tbl3_M339: 

DB 1 ;motor delay between steps 

DB 145, 165,0,0,0,0,0,0,0 

DB 0,0,0,0,0.0,190,133,155,133 ;S8 A3/S8 A4 TILT js 

DB FFH ;end 

; 

Tbl3_M340: 

DB 1 ;motor delay between steps 

DB 0,0,0,110,0,0 

DB 115,0,0,0,0,0,0,133 ;S9 A3/S9 A4 TILT (with say/m9) 

js 

DB FFH ; end 

Tbl3_M341: 

DB 
DB 
DB 

say/ml 6)js 
DB 

Tbl3_M342: 

DB 1 /motor delay between steps 

DB 143,118,0,0,0,0,0,133 ;S11' A3/S15 A4 TILT (with 

say/m2634)js 

DB FFH ; end 

Tbl3_M3 4 3: 

DB 1 ,-motor delay between steps 

DB 145,150,145,160,133 ;S12 A3 TILT (with say/m5) 

j«= 

DB FFK j end 

Tbl3_H344: 

DB 10 /motor delay between steps 

DB 148,155,0,0,0,0,138,148,155 

DB 0,0,0,0,133,125,120,115,133 ;S16 A3 TILT (with 

say/m5)js 

DB FFH ;end 


10 ,-motor delay between steps 

165,0,0,0,0,0,0,0,0 

0,0,190,180,190,133 ;S10 A3/S10 A4 TILT (with 

FFH ; end 


Tbl3_M345: 

DB 1 /motor delay between steps 

DB 155,0,0,120,0.0,0,0,133 ,-S3 A4 TILT (with say/m26) 

j» 

DB FFH /end 

; 

Tbl3_M346: 

DB 1 /motor delay between steps 

DB 145,165,0,0,0,0,0,0,0,0,0,0,133 

DB 120,133,145,125,0,0,0 

DB 133,115,0,0,0,133 ,-S5 A4 TILT js 

DB FFH /end 

I 

Tbl3_M347i 

DB 10 /motor delay between steps 

DB 115,133,120,160 

DB 0,0,0,0,0,190,0,0,0,0 

DB 0,0,0,0,0,0,0,0,155,133 /S6 A4 TILT (with say/m5) js 

DB FFH /end 

Tbl3_M348/ 


A-285 



DB 

DB 

E3 

DB FFH 

Tbl3_M349: 

DB 

DB 

DB FFH 

Tbl3_M350: 

DB 

DB 

DB 

DB 

DB FFH 

;END TILT 
;END GEORGE 
;GEORGE 
;IR 07/09/98 
Tbl3_M3Sl: 

DB 

DB 

DB 

Tbl3_M352: 

DB 

DB 

DB 

; DANGER 
Tbl3_M353: 

DB 

DB 

DB FFh 

Tbl3_M354: 

DB 

DB 

AGE1 

DB 

Tbl3_M355i 

DB 

DB 

DB 

DB FFH 
Tbl3_M3S6: 

DB 

DB 

DB 

Tbl3_M357: 

DB 

DB 

ir agel 

DB FFh 

Tbl3_M358: 

DB 10 

DB 

DB FFh 
Tbl3_M359: 


1 ;motor delay between steps 

120,133.115,133.155 

0,0,0.0,0,0,133 ;Sll A4 TILT (with say/m2) js 

; end 


1 .-motor delay between steps 

145,155,115,133 ;S13 A4 TILT (with say/m5) js 

; end 


5 .-motor delay between steps 

145,158,0,0.0,0,138,147,155 

0,0,0,0,0,0,133 

125,120,115,133 ;S16 A4 TILT (with say/m5l js 

; end 


20 ,-motor delay between steps SGTEST 

120.100.133 ;seql,seq2,seq3,seq4 IR age 1 
FFh 

46 ,-motor delay between steps SGTEST 

115.100.75.133 ;seq5 ir age 1 
FFh 


30 .-motor delay between steps 

115,130,100,70 .-SEQ6 (DANCE,WAH) ir AGE1 


1 ;motor delay between steps 

133.145.155.190.133.155.175.145.133 ;SEQ6 (DO DO DO) ir 

FFh 

8 ,-motor delay between steps 

145,115,145,133,145,115,145,133,0,0,0,0,0 
125,110,133,0,160,0,0,0,133 
;end 

1 ,-motor delay between steps 

0 

FFh ;empty space 

1 ,-motor delay between steps 

120.115.110.105.100.80.100.120.115.100.45.133 ;seq8 


,-motor delay between steps 

120,115,100,80,133,145,160,133 ,-seq9 ir agel 


A-286 




DB 1 ;motor delay between steps 

DB 115,133.140,145,133,160,180 

DB 173,167,160,180,173,167,160,140,145,133 ;seql0.11 ir 

agel 

DB FFh 
Tbl3_M360: 

DB 1 ;motor delay between steps 

DB 120,107,122,113,100,75,90,80.88,100,0,0,133 

DB 120,107,122,113,100,75.90,80,88,100,0,133 

DB 146,140,155,133 ;seql2 ir 

agel 

DB FFh 

Tbl3_M361: 

DB 5 ;motor delay between steps 

DB 

115,125,100,10,0,0,0,0,0,0,0,0,0,0.0,0,0,0,0,0,0,0,0, r 0,0,0 
DB 0.0,0,0,0,0,0,0,0.0,75,80,85,90,95,100.115 

DB 110,118.100,0,133 ;seql3,14 ir 

agel 

DB FFh 

Tbl3_M362: 

DB 
DB 

agel 

DB 

; DANGER SLEEP 
Tbl3_M363: 

DB 90 ;10 ;motor delay between steps 

DB 85,40,30,85,40.30,0,85,40,30,0.85,40,30,10 ;seql6 ir 

agel 

DB FFh 
Tbl3_M364: 

DB 1 ;motor delay between steps 

DB 125,113,125.118,105,133 ;seql,2,3 ir age2 

DB FFh 
Tbl3_M365: 

DB 10 .-motor delay between steps 

DB 125,113.125,118,105,133 ;SEQ4,5 IR AGE2 

DB FFh 


Tbl3_M366: 

DB 10 ,-motor delay between steps 

DB 145,155,140,145,142 150,0,0,0,0,0.0,0,133 :seq6 

ir age2 

DB FFh 
Tbl3_M367: 

DB 5 ,-motor delay between steps 

DB 10,40,10,40.133,143.140,145,143,145 

;DB 133 

DB 100,133 

DB 125,113,133 ,-seq7,8 ir age 2 

DB 125,113,133 ;seq7,8 ir age 2 

DB FFh 

Tbl3_M368: 

DB 10 ,-motor delay between steps 


10 

160,0,0.190,160,0,0,133,100,0,0,0,133 ;seql5 ir 

FFh 


A-287 



DB 125,115,105.0,0,133,145,143.155,133.100,133 ,seq9 

ir age 2 

DB FFh 

Tbl3_M369: 

DB 1 .-motor delay between steps 

DB 125,120,115,113,110,105,123,108 

;DB 123,115,110,100,100,100,100,0,0,0,0,0,0,0,0,133 
;seqlO ir age 2 

DB 123,115,110,100,0,0,0,0,0.0,0,0,0,0,0,133 .-seqlO ir 

age2 

DB FFH ; end 

Tbl3_M370: 

DB 1 ,-motor delay between steps 

DB 125,119,113,120,113,140,150,133 jseqll 

ir age2 

DB FFH ; end 
Tbl3_M371: 

DB 1 .-motor delay between steps 

DB 150,0,0,0,100,0,0,10,0,0.0.0,0,0.0,0,0,0,0,0,0 

DB 0,0,0,0,0,0,0,0,0,0,0.0,0,0.0,0,0,0,0,0,0,0 

DB 115,90,110,100.133 ;seql3,14 ir age2 

DB FFH ; end 

Tbl3_M372: 

DB 43 ,-motor delay between steps 

DB 100,0,0.150,0,0,100,0,0,0,0,133 ;seql5 ir age2 

DB FFH ;end 

; DANGER SLEEP 
Tbl3_M373: 

DB 90 ;motor delay between steps 

DB 85.40,30,85,40,30,85,40,30,10 ;seql6 ir age2 

DB FFH ;end 

Tbl3_M374: 

DB 1 ,-motor delay between steps 

DB 115,145,140,160,133 ;seql,2,3.4.5 ir age3 

DB FFH ,- end 

Tbl3_M375: 

DB 1 ,-motor delay between steps 

DB 120,0,0,145,138.150.120,105,133 ;seq6 ir age3 

DB FFH ;end 

! 

Tbl3_M376: 

DB 1 ,-motor delay between steps 

DB 115.0,145.155,0.0,136.150,145,190.151,133,150 

DB 145,190,151,0,133 ,-seq7.8 ir age3 

DB FFH ; end 

Tbl3_M377: 

DB 1 ,-motor delay between steps 

DB 120.123,112,133,143,151,160.133 ;seq9 ir age3 

DB FFH ;end 

Tbl3_M378: 

DB 1 ;motor delay between steps 


A-288 



;seqll ir age3 


OB 

DB 

Tbl3_M379: 

DB 

DB 

DB 

DB 

DB 

; 

Tbl3_M3flO: 

DB 

DB 

DB 

DB 

Tbl3_M381: 

DB 

DB 

age4 

DB 

Tbl3_M382: 
DB 

DB 

DB 

; 

Tbl3_M383: 

DB 

DB 

DB 

DB 

Tbl4_M384: 

DB 

DB 

DB 

age4 

DB 

Tbl4_M385: 

DB 

DB 

DB 

DB 

DIALOGUE 

Tbl4_M386: 

DB 

DB 

DB 

! 

Tbl4_M387i 

DB 

DB 

DB 

; 

Tbl4_M388: 

DB 

DB 


120,122,115.125.112,150,0,0.0,133 
FFH ; end 


1 /motor delay between ateps 

115,10,0,0,10,0.0,0,0,0,0,0,0,0,0,0,0,0 

0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,0 

145,110,0,0,0,0.0,0.133 ;aeql3,14 ir age3 

FFH ;end 


12 ;motor delay between steps 

117,0,0,0,0,0.0,133.0.0,0,0,0,0.0,100.0,0,0,0.30 
100,0,0,0,0.0,0.0,0.0,0.0,0,0.133 ;seql5 ir age3 

FFH ;end 


/motor delay between steps 

120,150,110.0,0,0,133 ;seql.2,3.4.5 ir 

Fr H ; end 


10 ;motor delay between steps 

120.110,145,155,100,133 jseqo ir age4 

FFH /end 


8 /motor delay between steps 

145,115,145,133,145,115.145,133,0,0.0,0,0 
125.110,133.0,160,0,0.0,133 
FFH ;end 


1 ;motor delay between steps 

115,133,143,148.136,160,180 

173.167,160.180.173,167,160,140.145,133 ;seq9 ir 


FFH ;end 


1 ;motor delay between steps 

118,0,0,155.0,0,133,0,0,118.0,133.0.0,0.0,110 
0,0,0.133,120,107,122,113,100,75,90.80.88,100,133 
FFH ;end SAY NUMBERS MODIFIED TO MATCH CORRECT 


1 /motor delay between steps 

120,123,112,133,143,151,160,133 
FFH ; end 


1 /motor delay between steps 

120,0,0.145,110,145,110,0,0,0,0,0,133 
FFH /end 


1 /motor delay between steps 

120,110,133 /OK /seql4 ir age4 


A-289 



DB 

FFH 

; end 


/ 

Tbl4_M389: 




DB 


90 ,-motor delay between steps 

DB 


150,0,130,0,100.0,133 

; YAWN 

DB 

FFH 

;end 


; DANGER SLEEP 



Tbl4_M390: 




DB 


90 ;motor delay between steps 

DB 


0,0,0,85,30,0,20,0,85,30,0,20,0,85,30,0,20,0,85,10 

DB 


FFH ;end 


;END GEORGE 

07/09/98 


;END IR 




; FURBY SAYS: (LIGHT) DMH 


Tbl4_M391: 




DB 


10 

.•motor delay between steps 

DB 


110,133 

.-LIGHT (furby says) 

; DB 


110,120,133 

.•LIGHT (furby says) 

DB 

FFH 

; end 



Tbl4_M392: 


/ dmh no light 


DB 


1 ;motor delay between 

steps 

DB 


150,0,0,0,115,0,0,0,0,133 


DB 

FFH 

;end 


Tbl4_M393: 


; dmh loud sound 


DB 


30 /motor delay between 

steps 

DB 


150,0,0,0,115,0,0.0,0,133 


DB 

FFH 

/ end 


Tbl4_M394: 


; LISTEN DMH 


DB 


10 /motor delay between 

steps 

DB 


140,150,0,0,133 


DB 


FFH 


Tbl4_M3 9 5: 




DB 


10 /motor delay between steps 


DB 


160,133 /(ME) 


DB 


FFH ;end 


Tbl4_M396: 




DB 


1 /motor delay between steps 


DB 


120,130,120,133 /ME ME 


DB 

FFH 

/ end 


Tbl4_M397: 




DB 

1 

/motor delay between steps 


DB 


115,130,110,133 /DO MOH 


DB 

FFH 

; end 


Tbl4_M398: 




DB 


1 /motor delay between steps 


DB 


120,130,110,133 ,-TOH LOO 


DB 

FFH 

/end 



; 


A-290 




Tbl4_M399: 




DB 


1 

;motor ueic-y between steps 

DB 

1 

FFH 

jend 


jMOOs 




DB 

1 


;motor delay between steps 

DB 

Tbl4_M401: 

FFH 

; and 

; ste t diagnostic 

DB 

1 


.•motor delay between steps 

DB 

FFH 

jend 

; key press bee- 

Tbl4_M402: 




DB 

1 


;motor delay between steps 

DB 

FFF 

; end 

; pass beep 

Tbl4_M403: 




DB 

1 


.•motor delay between steps 

DB 

FFH 

; end 

; fail beep 

Tbl4_M4C4i 




DB 

1 


.•motor delay between steps 

DB 

FFH 

; end 


Tbl4_M405: 




DB 

1 


;motcr delay bet een steps 

DB 

10,200,10,134 ; motor cal 

DB 

FFH 

; end 


Tbl4_M406: 




DB 

1 


.-motor delay between st os 

DB 

120 


; feed 1 

DB 

FFH 

;end 


Tbl4_M407: 




DB 


255 

.•motor delay between steps 

DB 


0,134 

; feed 2 

DB 

FFH 

; end 

Tbl4_M408: 




DB 

1 


;mctor delay between steps 

DB 


30 

; light pass 

DB 

FFH 

; end 


Tbl4_M409: 




Db 

1 


.-motor delay between steps 

B 


160 

; sound pass 

DB 

FFH 

; end 


Tbl4_M410 s 




DB 

1 


,-motoi delay between steps 

DB 


10 

; sleep 

DB 

FFH 

i end 


# 

Tbl4_M411: 



; PEEK-BOO (HIDE AND SEEK) 

DB 


20 

;MOTOR DELAY BETWEEN STEPS 

DB 


155.133,0,0,147,133 

DB 

I 


FFh 



A-291 



Tbl4_M412: 
DB 

DB 

DB 

DB 

I 


; DB 

J 

Tbl4_M413: 
DB 
DB 

; 

Tbl4_M414: 
DB 
DB 

Tbl4_M415: 
DB 
DB 

Tbl4_M416: 

DB 

DB 

Tbl4_M417: 

DB 

DB 

Tbl4_M418: 

DB 

DB 

Tbl4_M419: 
DB 
DB 

; 

Tbl4_M420: 
DB 
DB 

Tbl4_M421: 
DB 
DB 

) 

Tbl4_M422: 
DB 
DB 

Tbl4_M423s 

DB 

DB 

Tbl4_M424: 
DB 
DB 
I 

Tbl4_M425: 
DB 


; feed djnh 

1 .-motor delay between (taps 

165,0,0,0,0,0.0.150,0,0,165,0,0,0,0,0.0,150 
0,0,165,0,0,0,0,0,0,133 ;(AAAAH) 

FFH ;end 


FFH ;end 


1 ,-motor delay between steps 

FFH ;end 


1 ,-motor delay between steps 

FFH ; end 


1 ;mctor delay between steps 

FFH ,- end 


1 imotor delay between steps 

FFH ;end 


1 ,-motor delay aetween steps 

-FH ;end 


1 ;motor delay between steps 

FFH ;end 


1 ,-motor delay between steps 

FFH ;end 


1 ;m" -r delay between steps 

FFH ;end 


1 ;motor delay between steps 

F 'H ; end 


1 ,-motor delay between steps 

FFH ;end 


1 ;motor delay between steps 

FFH ;end 


1 ,-motor delay between steps 

FFH ;end 


1 ,-motor delay between steps 


; (AAAAh) 


A-292 



DB 


FFH ;end 


; 

Tbl4_M426: 

DB 1 ;motor delay between steps 

DB FFH ;end 

; 

"ol4_M427: 

DB 1 .-motor delay between steps 

DB FFH ; end 

Tbl4_M428: 

DB 1 ;motor delay between steps 

DB FFH j end 

l 

Tbl4_M429: 

DB 1 .-motor delay between steps 

DB FFH ; end 

I 

Tbl4_M430: 

DB 1 ;motor delay between steps 

DB FFH ;end 

Tbl4_M43-: 

Tbl4_M43i -. 

Tbl4_H433: 

Tbl4_K434: 

DB 1 .-motor delay between steps 

DB 0 

DB FFH ; end 

Tbl4_M435: 

DB 1 ;motor delay between steps 

DB 0 

DB FFH ;end 

Tbl4_M436: 

DB 1 .-motor delay between steps 

DB 0 

DB FFH ,- end 

Tbl4_M437: 

DB 1 .-motor delay between steps 

DB 0 

DB FFH jend 

Tbl4_M438i 

DB 1 ,-motor delay between steps 

DB 0 

DB FFH ,- end 

Tbl4_M439: 

DB 1 ,-motor delay between steps 

DB 0 

DB FFH ;end 

Tbl4_M44 0: 

DB 1 .-motor delay between steps 


A-293 



DB 0 

DB FFH 

Tbl4_M441: 

I 

Tbl4_M442: 

; 

Tbl4_M443. 

J 

Tbl4_M444t 

; 

Tbl4_M445: 

Tbl4_M446: 

i 

Tbl4_M447: 

Tbl4_M448: 

Tbl4_M449: 

I 

Tbl4_M450: 

; 

Tbl4_M4 51: 

Tbl4_M452: 

; 

Tbl4_M453: 
Tbl4_M454: 
Tbl4_M455: 
Tbl4_M456: 
Tb-4_M457: 

Tbl4_M458: 

1 

Tbl4_M459: 
Tbl4_M460: 

Tbl4_M461: 

; 

Tbl4_M462! 

I 

TL14_M463: 

; 

Tbl4_M464i 

I 

Tbl4_M465 s 

; 

Tbl4_M466: 

Tbl4 J4467: 

I 

Tbl4_M468: 

; 

Tbl4_M469: 


; er.d 


A-294 




Tbl4_M470: 

; 

Tbl4_M471: 

Tbl4_H472: 

I 

Tbl4_M473: 

I 

Tbl4_M474s 

Tbl4_M475: 

J 

Tbl4_M476: 

Tbl4_M477: 

Tbl4_M478: 

Tbl4_M479: 

Tbl4_M480: 

I 

Tbl4_M4 81: 
Tbl4_M482: 
Tbl4_M483: 

Tbl4_K484: 

I 

Tbl4_H485: 
Tbl4_M486: 
Tbl4_H487: 
Tbl4_M48»: 
Tbl4_M489: 
Tbl4_M490: 

Tbl4_M491: 

; 

Tbl4_M492: 

I 

Tbl4_M493: 

Tbl4_M494: 

I 

Tbl4_M495: 

I 

Tbl4_M496: 
Tbl4_M497: 
Tbl4_M498: 
Tbl4_H499: 



Tbl4_M500: 

J 

Tbl4_M501i 

? 

Tbl4_M502 

I 

Tbl4_M503: 

I 

Tbl4_M504: 

I 

Tbl4_H505: 

I 

Tbl4_M506: 

; 

Tbl4_M507: 

I 

Tbl4_M508: 

; 

Tbl4_M509: 

) 

Tbl4_M510: 

DB 10 

DB 10.200,134 

DB FFH 

I 

'fbl 4_M511: 

DB 10 

DB 10,200,10 

DB FFH 


motor delay between steps 
end 

motor delay between steps 
end 


A-296